首页 > 解决方案 > 即使通过 UI 选择了该选项,单元测试也不会并行运行

问题描述

这似乎是一个非常基本的问题,但微软在为多个版本的 Visual Studio 并行运行单元测试时遇到了问题。我们发现以前可行的唯一方法(使用 .runsettings 和已弃用的 .testsettings 文件)似乎不再有效,可能是由于 MSTest v2。.runsettings 文件的最新文档(https://docs.microsoft.com/en-us/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file?view=vs-2019 ) 没有帮助,因为那里的设置没有效果(至少在我们的用例中)。

标签: visual-studio-2019mstest

解决方案


经过大量谷歌搜索、链接、阅读和测试,我终于在此页面上的链接中找到了答案:https ://marketplace.visualstudio.com/items?itemName=OsirisTerje.Runsettings-19151 :

<RunSettings>
<!-- MSTest adapter -->  
  <MSTest>
    <Parallelize>
      <Workers>4</Workers>
      <Scope>ClassLevel</Scope>
    </Parallelize>
  </MSTest>
</RunSettings>

由于某种原因,这似乎没有进入文档,但这个更改最终触发了 VS2019 中的并行 MSTEST 单元测试。

更新:

我找到了一个更好的链接:https ://devblogs.microsoft.com/devops/mstest-v2-in-assembly-parallel-test-execution/ 这表示您也可以设置<Scope>MethodLevelor Custom,您还可以添加如下所示的程序集属性

[assembly: Parallelize(Workers = 4, Scope = ExecutionScope.ClassLevel)]

推荐阅读