我有一个使用NUnit的单元测试程序集,它包含各种命名空间和数据库中的数千个测试。
我希望在运行程序集中的任何测试之前运行一些全局设置(配置跟踪侦听器)。我可以通过在全局命名空间中创建[SetUpFixture]
来完成此操作。
这在运行所有测试时都可以正常工作,例如:nunit.exe testassembly.exe
但是,如果我指定要测试的灯具,则不会运行全局设置,例如:nunit.exe testassembly.exe /fixture=MyTests
如何在运行程序集中的任何测试之前提供始终运行的全局设置?
更新
请注意,控制台测试运行器将使用/run
选项正常工作,即即使仅运行特定测试夹具也会运行全局设置。我正在寻找GUI测试运行器的解决方案。
答案 0 :(得分:7)
查理普尔在NUnit discussion forum中提出了另一种选择。
建议的解决方法是使用[TestFixtureSetup]
和[TestFixtureTearDown]
在夹具级别包括所有设置和拆卸。
通过使用测试夹具的基类在夹具之间共享代码,可以实现全局设置和拆卸。对于全局设置意味着只在任何夹具之前运行一次,可以使用一个标志来防止它被多次执行。
P.S。 / fixture选项不推荐使用。