我是任务库的新手。我想并行运行一些单元测试,并使用.NET 4.0中的任务库测试并发问题。
如您所知TestMethod
s是无参数且不返回任何内容(void
)所以我需要同时运行N
个线程中的一个测试。
[TestMethod()]
void MyTest()
{
// Do Something
}
可以通过传统线程来完成,但是想要使用更强大和管理的技术,所以:
如何使用N
同时运行MyTest()
个TaskLibrary
个数量?
我想知道为什么没有并发单元测试的内置属性。
答案 0 :(得分: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());
}