2011-08-18 67 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. /夾具選項在這些日子已被棄用。