【发布时间】:2018-02-09 09:52:43
【问题描述】:
我希望 vstest.console.exe 将在指定 /Parallel 选项的情况下并行运行所有测试方法。在 4 核机器上,我预计下面的测试类将花费大约 2~3 秒的执行时间,实际上我得到了 8~9 秒,这意味着测试是按顺序执行的。
[TestClass]
public class UnitTest1
{
[TestMethod]
public async Task TestMethod1()
{
await Task.Delay(2000);
}
[TestMethod]
public async Task TestMethod2()
{
await Task.Delay(2000);
}
[TestMethod]
public async Task TestMethod3()
{
await Task.Delay(2000);
}
[TestMethod]
public async Task TestMethod4()
{
await Task.Delay(2000);
}
}
测试输出:
Microsoft (R) 测试执行命令行工具版本 15.5.0 版权所有 (c) 微软公司。保留所有权利。
开始执行测试,请稍候... 已通过 TestMethod1 已通过
测试方法 2 已通过 测试方法 3 已通过 测试方法 4测试总数:4。通过:4。失败:0。跳过:0。测试运行成功。
测试执行时间:8.6960 秒
【问题讨论】:
-
您有正在使用的设置文件吗?完整的命令行(+ 设置,如果适用)将有助于确保人们可以重现您所看到的内容。
-
vstest.console.exe /Parallel MyUnitTest.dll产生上述结果。注意到我有/没有/Parallel选项的执行时间相同,看起来它没有任何效果。 -
我自己没玩过这么多。但是,当引入此功能时,它似乎只能跨测试容器并行化——即,如果您有多个 程序集,它将在单独的程序集中并行运行测试。看不到任何表明从那时起发生了任何变化的东西。
标签: c# visual-studio unit-testing async-await mstest