1

我遇到了一个有趣的情况。在我的测试程序集中,我有具有特定测试类的文件夹,即TestFixture。例如,考虑 VS 中的以下层次结构:

溶胶
  测试项目
    测试文件夹1
      测试类1
      测试类2
    测试文件夹2
      测试类3

现在,当我在命令行运行以下命令时:

nunit-console.exe /run:Sol.TestProject.TestFolder1.TestClass2 TestProject.dll

一切运行良好,所有测试都通过了。但是,如果我运行如下:

nunit-console.exe /run:Sol.TestProject.TestFolder1 TestProject.dll

在这种情况下,TestClass2 中的一些测试失败了。

我曾尝试转储测试中涉及的一些相关对象的状态,在这两种情况下,测试代码开头的状态似乎都很好。此外,TestClass1/2/3 没有超类在做某事 - 所以这也被排除在外。有什么想法可以在这里发生吗?

我正在使用 VS2010/.NET4.0 (4.0.30319.1)/nUnit 2.5.9。

4

1 回答 1

0

终于想通了。我正在使用单例类来存储某些选项。看起来单例类实例在不同TestFixtures(即测试类)的运行之间保留,当它们一起运行时,例如,对于文件夹或项目。我最初并没有转储该对象的状态,因为我认为单例类将为每个 TestFixture 提供新实例。有趣的发现,希望这对某人有所帮助。

于 2011-01-28T16:37:01.900 回答