使用xUnit.net和ReSharper测试运行程序抽象测试类

8 浏览
0 Comments

使用xUnit.net和ReSharper测试运行程序抽象测试类

我想通过创建一个抽象的测试类来对一个抽象类进行单元测试,该抽象测试类使用抽象工厂方法(使用这种方法)来多态地获取具体的实例。代码如下:

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 测试运行器报告了以下错误:

Inconclusive: Test wasn't run

对于 BaseTest 类中的所有测试,甚至包括被忽略的测试。我尝试使用 Visual Studio 测试运行器运行这些测试,但是它无法检测到任何测试。

0
0 Comments

在使用xUnit.net和ReSharper测试运行器时,有时会遇到"测试方法不明确:测试未运行"的错误。此外,还可能出现文本资源管理器无法找到测试的问题。解决这些问题的方法是删除一个临时的VisualStudioTestExplorerExtensions目录。

问题的原因和解决方法如下:

原因:

- 某些情况下,xUnit.net和ReSharper测试运行器无法正确识别和运行测试方法,导致测试不明确。

解决方法:

1. 打开资源管理器。

2. 导航到路径"C:/users/USERNAME/AppData/Local/Temp/"。

3. 在该目录下找到VisualStudioTestExplorerExtensions文件夹。

4. 删除VisualStudioTestExplorerExtensions文件夹。

5. 重新运行测试,问题应该得到解决。

以上是解决xUnit.net和ReSharper测试运行器中"测试方法不明确:测试未运行"错误的方法。如果还遇到文本资源管理器无法找到测试的问题,可以尝试按照上述方法删除VisualStudioTestExplorerExtensions文件夹来解决。

0