2008-09-30 52 views
9

我有一些代碼使用共享網關模式來實現控制容器的反轉。我有幾百個NUnit單元測試,它們會執行使用此IOC的代碼。他們都工作(在我的機器上!),但我擔心這些測試可能會在負載下失敗。我似乎記得NUnit(和MSTest)試圖在多個線程上並行運行測試(肯定會觸發靜態/共享網關上的競爭條件),但我找不到任何說明實際發生的文檔。我的經驗是,NUnit似乎按順序運行測試。我的問題是,NUnit(或MSTest)是否同時運行單元測試?如果是這樣,在什麼條件下?而且,我可以通過某種配置選項關閉此功能嗎?NUnit(和MSTest)如何處理更改靜態/共享變量的測試?

回答

8

更新:

Visual Studio 2010中引入了並行運行測試的能力。

以下是關於如何啓用此功能的step by step article

MSTEST:
所以根據大衛·威廉姆森,從微軟的Visual Studio Team System中,上this post在MSDN論壇:

測試絕對不要在 並行VS或通過運行時運行 mstest.exe。如果他們運行在通過VS的 負載測試中,那麼這是一個不同的故事。然而,基本執行, 始終是串行的。

另外,使用MsTest運行的測試每個都使用不同的線程運行,以確保您對每個測試都有一個乾淨的平板。無法禁用此行爲。

NUnit:
NUnit在同一個線程上運行所有測試。

+1

該信息已過時。 MSTest肯定會並行運行測試。你只需要編輯配置文件。 – 2012-05-07 06:05:05