简单的任务库问题

时间:2011-03-20 15:49:49

标签: c# unit-testing concurrency

我是任务库的新手。我想并行运行一些单元测试,并使用.NET 4.0中的任务库测试并发问题。

如您所知TestMethod s是无参数且不返回任何内容(void)所以我需要同时运行N个线程中的一个测试。

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

可以通过传统线程来完成,但是想要使用更强大和管理的技术,所以:

如何使用N同时运行MyTest()TaskLibrary个数量?

我想知道为什么没有并发单元测试的内置属性。

1 个答案:

答案 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());
}