vstest.console.exe的并行选项无法正常工作



我期望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);
    }
}

测试OUPUT:

Microsoft(R(测试执行命令行工具版本15.5.0 版权(C(Microsoft Corporation。保留所有权利。

开始测试执行,请等待...通过的testMethod1通过了
TestMethod2通过了TestMethod3通过了TestMethod4

总测试:4。通过:4。失败:0。跳过:0。测试成功。

测试执行时间:8.6960秒

您将需要一个设置文件中的设置文件来告诉您要使用多少核心进行执行。

命令将是这样的:

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; =核心数(:将启动" n"进程。任何其他值的" n":启动的过程数量将与机器上可用的内核一样多。通常,值为0表示可以使用所有可用的免费核心。

最新更新