0

我们正在使用 VS 2008 和 Resharper 5.1 (C#) 和 NUnit 2.4.8。

我有这个没有[TestFixture]属性的基本测试类:

public class BaseTestCasesFixture: BaseFixture
{
    protected virtual int Calculate(DatePeriod period)
    {
        throw new NotSupportedException("Should be implemented by inheriter");
    }

    [Test]
    public void Test1()
    {
        Assert.That(Calculate(new DatePeriod(2006, 2, 28, 2007, 2, 28)), Is.EqualTo(361));
    }

我有两个后代,它们继承自该基类并实现了要测试的方法的两个版本:

[TestFixture]
public class RealTestCaseFixture1 : BaseTestCasesFixture
{
    protected override int Calculate(DatePeriod period)
    {
        return period.DaysAsWeNeedThem;
    }

现在,当我在构建服务器(Bamboo)上运行这些测试时,一切似乎都运行良好 - 但是在 Visual Studio 中使用 Resharper 5.1 测试运行器运行它们时,RS 坚持运行我的BaseTestCasesFixtureNO [TestFixture] on it!!)并且惨遭失败(15次!)....

知道为什么吗?这是 Resharper Testrunner 错误吗?有谁知道那个是在 6.0/6.1 中修复的吗?

更新:刚刚用最新的 RS 6.1 测试过 - 仍然是同样的问题 :-(

4

1 回答 1

2

如果我冒险猜测,基类上的 [Test] 属性足以让 Resharper 假设 [TestFixture] 属性,即使它不存在。从 v2.5 开始,NUnit 的工作方式相同

将基类设置为抽象可能会阻止此行为。

于 2012-01-10T19:54:03.027 回答