2011-03-20 41 views
0

我是新來的任務庫。我想並行運行一些單元測試,並使用.NET 4.0中的任務庫測試併發問題。簡單的任務庫問題

正如您所知TestMethod s是無參數且不返回任何內容(void),所以我只需要同時運行我的一個測試N線程。

[TestMethod()] 
void MyTest() 
{ 
    // Do Something 
} 

它可以通過傳統的線程來完成,但是想使用更強大和管理技術,所以:

如何運行NMyTest()號同時使用TaskLibrary

我想知道爲什麼沒有用於併發單元測試的內置屬性。

+0

併發測試通常比運行一大堆更多。你想測試顯式的時序場景等。一個簡單的屬性不會創建一個併發測試框架。 – 2011-03-20 16:08:43

+0

@Albin:對我來說,擁有這樣的屬性還是有道理的。很多時候,我看到有人在不止一次的情況下使用循環進行測試。 – Xaqron 2011-03-20 16:12:18

回答

2
[TestMethod()] 
void MyTest() 
{ 
    // Do Something 
} 

[TestMethod()] 
void MyTest_4_Times() 
{ 
    Parallel.Invoke(MyTest, MyTest, MyTest, MyTest); 
} 

或者如果你想改變一個參數的併發測試的數量。

[TestMethod()] 
void MyTest_4_Times() 
{ 
    var n = 4; 
    Task.WaitAll(Enumerable.Range(0, n).Select(_ => Task.Factory.StartNew(MyTest)).ToArray()); 
} 
+0

我'N'大於1000! – Xaqron 2011-03-20 16:00:56

+0

@Xaqron我更新了答案。 – 2011-03-20 16:03:41