我有一个有趣的情况。在我的测试程序集中,我有具有特定测试类的文件夹,即TestFixture。例如,考虑VS中的以下层次结构:
Sol TestProject TestFolder1 TestClass1 TestClass2 TestFolder2 TestClass3
现在,当我在命令行运行以下命令时:
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。
答案 0 :(得分:0)
终于弄明白了。我使用singleton class来存储某些选项。看起来单个类实例在不同TestFixtures(即测试类)的运行之间保留,当它们一起运行时,例如,用于文件夹或项目。我最初没有转储这个对象的状态,因为我认为单例类将为每个TestFixtures提供新实例。有趣的发现,希望这有助于某人。