2010-09-10 98 views
6

我試圖找到一個單元測試框架,用於.NET平臺,它可以處理多個線程的測試。.NET單元測試框架,可以處理多個線程的測試

NUnit不支持spanws線程的測試,因爲例如這些線程中的異常未被考慮。 Roy Osherove有一個擴展,但它的相當日期爲1

MBUnit允許一個測試被許多線程同時執行,但我不知道它是否支持在一個線程內創建的線程。例如,爲了測試一個併發集合,我希望不同類型的線程(生產者線程和消費者線程)同時運行。有多個線程執行相同的測試代碼是不夠的。

感謝 佩德羅

+0

我認爲單元測試的結果應該是可重現的。多線程的情況是,競態條件和其他時間問題的發生高度依賴於測試用例運行的環境。所以這聽起來有點矛盾。 – Jan 2010-12-15 17:21:23

+0

@Jan我同意你需要巨大的控制才能重現。運行線程單元測試意味着測試框架必須完全接管來自Windows的線程/調度,並且您必須明確指定每個中斷組合。 – Stefan 2010-12-15 22:34:50

回答

1

我假設你的主要問題是沒有「測試線」(即主線程)上發生的異常不會導致測試失敗。

這些例外情況被忽略的事實可以有所控制。我解釋在博客這個問題ReSharper的測試跑步者的條件,但相同的修訂適用於NUnit的亞軍:

ReSharper test runner – hidden thread exceptions

的關鍵是爲運行測試可執行配置legacyUnhandledExceptionPolicy