2013-01-24 39 views
9

运行我有一个包含一些测试用例和一些普通的试验基地测试类:NUnit的测试用例不是从继承

[TestFixture] 
public abstract class TestBase 
{ 
    [TestCase(1)] 
    [TestCase(2)] 
    [TestCase(3)] 
    public void TestA(int value) 
    { 
    // Perform test 
    } 

    [Test] 
    public void TestB() 
    { 
    // Perform test 
    } 
} 

这些测试是从设置环境方式不同子类中运行。子类仅包含设置方法,不包含测试。

[TestFixture] 
public class LocalDatabaseTest : TestBase 
{ 
    [SetUp] 
    public void SetUp() 
    { 
    // Set up environment to use local db 
    } 
} 

我使用ReSharper 6.1.1000.82在LocalDatabaseTest中运行所有测试,但只运行普通测试。使用TestCase的测试没有得到任何结果。如果我在TestBase类中的TestA上选择Run All,则运行所有测试用例(包括其他子类)。我正在使用NUnit 2.6.2.12296。关于我做错了什么想法?

回答

7

你没有做错任何事。

如果你通过NUnit测试运行器打开你的测试DLL,你会看到所有的测试都运行成功。
(我刚刚用NUnit 2.6.2验证了你的代码)。

关于在Resharper上忽略参数化测试的原因:看起来Resharper测试运行器会导致这种行为。
所以,我的建议是使用NUnit来运行参数化测试。

顺便说一句,Resharper 7有更好的支持NUnit参数化测试。可能这个问题不会出现在最新的Resharper版本中。

+0

好吧,看起来像它的时间升级到ReSharper 7然后... :-) – Anlo

+2

这不是在VS 2012中固定7.1。但是,+1指出了。这让我很害怕为什么它没有理由显示无结果 –