我有一个包含一些测试用例和一些普通测试的基本测试类:
[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 上运行全部",则会运行所有测试用例(包括其他子类)。我正在使用 NUnit 2.6.2.12296。对我做错了什么有什么想法吗?
你没有做错任何事。
如果通过 NUnit 测试运行程序打开测试 dll,您将看到所有测试都已成功运行。
(我刚刚用 NUnit 2.6.2 验证了您的代码)。
上的参数化测试的原因:Resharper测试运行器似乎存在一些问题,导致这种行为。
因此,我的建议是使用 NUnit 运行参数化测试。
顺便说一句,Resharper 7 更好地支持 NUnit 参数化测试。这个问题可能不会出现在最新的锐化器版本中。