10

我有一个包含一些测试用例和一些普通测试的基本测试类:

[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 类中选择 Run All on TestA,则所有测试用例都会运行(包括其他子类)。我正在使用 NUnit 2.6.2.12296。关于我做错了什么的任何想法?

4

1 回答 1

7

你没有做错任何事。

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

关于忽略 Resharper 上的参数化测试的原因: Resharper 测试运行器似乎存在一些问题,导致这种行为。
所以,我的建议是使用 NUnit 来运行参数化测试。

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

于 2013-01-24T21:12:03.823 回答