使用xUnit.net和ReSharper测试运行器的抽象测试类

时间:2017-12-12 07:32:17

标签: c# unit-testing resharper abstract-class xunit.net

我想通过使用抽象工厂方法(using this approach)创建抽象测试类来对抽象类进行单元测试,该方法以多态方式获取具体实例。像这样:

public abstract class Base
{
  public bool MyMethod()
  {
    return true;
  }
}

public class Derived : Base {}

// Tests

public abstract class BaseTest
{
  [Fact]
  public void MyMethod_MakeTestFailByAssertingFalseReturn()
  {
    //Arrange
    var instance = GetConcreteInstance();

    //Act
    bool result = instance.MyMethod();

    //Assert
    Assert.False(result);
  }

  protected abstract Base GetConcreteInstance();
}

public class DerivedTest : BaseTest
{
  protected override Base GetConcreteInstance()
  {
    return new Derived();
  }
}

到目前为止,这么好。但是ReSharper测试运行器给出了这个错误:

  

不确定:测试未运行

用于BaseTest类中的所有测试。即使是那些被忽视的人。我尝试使用Visual Studio测试运行器运行测试,但它没有检测到它们中的任何一个。

1 个答案:

答案 0 :(得分:0)

您可以查看this。我也遇到了没有找到我的测试的文本浏览器的问题,当我删除你可以在路径找到的临时visualstudioextension目录时,我设法解决问题 - C:/ users / USERNAME / AppData / Local / Temp / VisualStudioTestExplorerExtensions