如何在Visual Studio 2010中并行化数据驱动的单元测试?

Vin*_*Vin 17 c# parallel-processing unit-testing mstest visual-studio

我知道通过在测试解决方案中的.testresults文件中指定parallelTestCount属性,可以在多核机器上并行处理常规的ms-test单元测试(当然需要注意).像这样,

<Execution parallelTestCount="1">
    <TestTypeSpecific />
    <AgentRule name="Execution Agents"></AgentRule>
</Execution>
Run Code Online (Sandbox Code Playgroud)

更多信息请访问:http://blogs.msdn.com/b/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx

但是,我有一个数据驱动的测试,类似这样,这只是一个测试,但输入来自csv并通过相同的测试运行1000个记录.

[DeploymentItem("InputDataRows.csv"), Timeout(37800000), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\InputDataRow.csv", "InputDataRow#csv", DataAccessMethod.Sequential)]                
[TestMethod]
public void RunProcessing()
{
    int userId = Convert.ToInt32(TestContext.DataRow[0].ToString());
    int connId = Convert.ToInt32(TestContext.DataRow[1].ToString());
    string xml = TestHelper.GetDataFromDb(userId, connId);
    a = doStuffA(xml); 
    b = doStuffB(xml);
    Assert.IsTrue(a == b);
}
Run Code Online (Sandbox Code Playgroud)

因为这是一个缓慢的过程,我正在寻找并行化这个单元测试.

顺序枚举的属性就是它访问数据的方式,另一种选择是随机的,这仍然是串行和不平行.

小智 -2

据我所知:测试中的各个数据行不是并行运行的。但如果您有多个单元测试,它们确实会并行运行。