我期待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)Microsoft Corporation。保留所有权利。
开始测试执行,请稍候......通过TestMethod1通过了 TestMethod2传递了TestMethod3传递的TestMethod4
总测试:4。通过:4。失败:0。跳过:0。测试运行成功。
测试执行时间:8.6960秒
答案 0 :(得分:1)
您将需要一个设置文件,以告知您要用于执行的核心数。
命令将是这样的:
vstest.console.exe /Parallel MyUnitTest.dll /Settings:C:\Settings.testsettings
Settings.testsettings应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<MaxCpuCount>0</MaxCpuCount>
</RunConfiguration>
</RunSettings>
MaxCpuCount的值具有以下语义:
'n'(其中1&lt; = n&lt; =核心数):将启动upto'n'个进程。 任何其他值的'n':启动的进程数量与计算机上的可用核心数量一样多。 通常,值为0表示可以使用最多可用的所有可用核心。