一般抽象基类中的NUnit测试将被忽略

本文关键字:测试 NUnit 抽象 基类 | 更新日期: 2023-09-27 18:09:57

我创建了一个通用的抽象基类来做一些常见的测试。测试出现了,但它们被忽略了。为什么?示例

public abstract class FooBase<TA, TB> : TestBase<TA, TB>
{
   [Test]
   public void SomeBaseTest(){}
}
[TestFixture]
public class ConcreteFooTest:FooBase<IFoo,MyContext>
{
   [Test]
   public void WorkingTest(){}
}

如果本例忽略SomeBaseTest。TestBase被我所有的测试使用,并且只包含一些帮助方法,没有测试

一般抽象基类中的NUnit测试将被忽略

正如rich所说,这是由于RS的测试运行器。这是RS 6.0中的一个错误,计划在6.1中修复。参见RSRP-273687单元测试运行器显示测试类与泛型基类不一致

您使用的是哪个测试运行器?

您是否尝试过添加TestFixture属性?

[TestFixture]
public abstract class FooBase<TA, TB> : TestBase<TA, TB>
{
    [Test]
    public void SomeBaseTest(){}
}

问题可能出在您的测试运行器上。Nunit 2.5.10的测试运行程序Autotest运行了它。Net(1.3.1)运行了它,Resharper 6.0的测试运行器看到了它,但不会自动运行它。