我有一个包含一些测试用例和一些普通测试的基础测试类:
[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。关于我做错了什么的想法?
答案 0 :(得分:7)
你没有做错任何事。
如果您通过NUnit测试运行器打开测试dll,您将看到所有测试都成功运行 (我刚用NUnit 2.6.2验证了你的代码。)
关于忽略Resharper参数化测试的原因:似乎Resharper测试运行器存在一些导致此类行为的问题。
所以,我的建议是使用NUnit来运行参数化测试。
顺便说一句,Resharper 7更好地支持NUnit参数化测试。可能这个问题不会出现在最新的Resharper版本中。