2011-08-18 68 views
6

我有一个使用NUnit的单元测试程序集,它在各种命名空间和灯具中包含数千个测试。NUnit:在命令行指定运行灯具时不使用全局设置灯具

我想在我的程序集中的任何测试运行之前运行一些全局设置(配置Trace监听器)。我可以通过在全局名称空间中创建一个[SetUpFixture]来完成此操作。

运行的所有测试时也能正常工作,例如:
nunit.exe testassembly.exe

但是,如果我指定一个固定装置进行测试,则全局设置不运行,如:
nunit.exe testassembly.exe /fixture=MyTests

如何提供全球在程序集中的任何测试运行之前始终运行的设置?

UPDATE:

注意控制台测试运行器将正常工作使用/run选项,当只运行一个特定的测试夹具即全球安装甚至运行。我正在为GUI测试运行器提供解决方案。

+0

您正在使用哪个版本的NUnit? – sll

+0

@sllev - NUnit 2.5.5。还测试了最新的稳定版本2.5.10.11092。 – Ergwun

+1

发布您的问题作为答案,它帮助了我。 –

回答

7

Charlie Poole在NUnit discussion forum中建议了一种替代方案。

建议的解决方法是使用[TestFixtureSetup][TestFixtureTearDown]包括夹具级别的所有设置和拆卸。

全局设置和拆卸可以像这样通过使用测试夹具的基类来共享夹具之间的代码来实现。对于仅在任何灯具之前运行一次的全局设置,可以使用标志来防止它多次执行。

P.S. /夹具选项在这些日子已被弃用。