我们正在使用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坚持运行我的BaseTestCasesFixture
(没有 [TestFixture]
就可以!!)并且悲惨地失败了(15次!)....
知道为什么??这是一个Resharper Testrunner bug吗?有谁知道那是一个固定在6.0 / 6.1 ??
更新:刚刚使用最新的RS 6.1测试 - 仍然是同样的问题: - (
答案 0 :(得分:2)
如果我冒险猜测,基类的[Test]属性足以让Resharper假设[TestFixture]属性,即使它不存在。 NUnit,自v2.5起,works the same way。
将基类设置为抽象可能会停止此行为。