【发布时间】:2011-05-02 01:47:34
【问题描述】:
我知道通过在测试解决方案的.testresults 文件中指定parallelTestCount 属性,可以在多核机器上并行化常规的MS-Test 单元测试(当然需要注意事项)。像这样,
<Execution parallelTestCount="1">
<TestTypeSpecific />
<AgentRule name="Execution Agents"></AgentRule>
</Execution>
MSDN 上的更多信息:Executing Unit Tests in parallel on a multi-CPU/core machine
但是,我有一个数据驱动的测试,类似这样,这只是一个测试,但输入来自 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);
}
因为这是一个缓慢的过程,我正在考虑并行化这个单元测试。
属性上的Sequential enum只是它访问数据的方式,另一个选项是Random,仍然是串行而不是并行。
【问题讨论】:
-
您使用什么语言? C#?
-
您使用的是什么版本的 .Net?另外,您能否提供一些有关如何设置 TestContext 的详细信息?
标签: c# visual-studio unit-testing parallel-processing mstest