如何并行 运行 多个 MSTest(在同一个项目和同一个 class 中)

How to run multiple MSTest ( within the same project and in same class ) in Parallel

我正在编写一个测试自动化框架,我需要使用 运行settings 文件并行执行所有单元测试(在同一个项目中)。

这里我的意思是我有一个 class 并且我在 class 中有多个测试,我需要 运行 这个并行。

我尽职尽责地执行了所有步骤,但仍然无法使其 运行 并行。

我卡在这里了..我之前提过一个问题

还有一个和我类似的问题

parallel execution of tests in same class in mstest

我现在的困惑是我是否需要为每个测试创建单独的项目以实现并行性

我是不是错过了一些非常明显的东西?

MSTest 并行测试功能开发者请帮助我

您应该 运行 vstest.console.exe https://msdn.microsoft.com/en-us/library/jj155800.aspx 而不是 MSTEST。 我个人 运行 在远程 Powershell 会话中使用 MSTEST 遇到麻烦,但 VSTEST 运行 没问题。
确保您的测试是线程安全的!!

在 .testSettings 文件中使用 parallelTestCount 定义并行度

同时检查 TFS 或 TSTS 如何使用 运行 选项并行调用 vstest 以供参考: https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/VsTest/VSTest.ps1

MSTest 不支持 运行 并行测试同一容器中的测试。所以,是的,您必须为并行 运行 的测试编写单独的程序集 (DLL)。我不会说您应该为每个测试编写一个程序集,因为那样会过大。

也许您可以找到一些有意义的逻辑测试分组。根据您 运行 的测试类型,您可能只需要并行进行 2-8 运行ning。

如果您想跨容器测试多个测试的功能,我有一个 blog post and a github sample project 可以证明这一点。

您应该可以通过以下方式更改 运行 设置来做到这一点。当您将范围级别定义为 Method 而不是 ClassLevel 时,您将能够 运行 并行存在于相同 class 中的测试。

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- MSTest adapter -->
  <MSTest>
    <Parallelize>
      <Workers>10</Workers>
      <Scope>MethodLevel</Scope>
    </Parallelize>
  </MSTest>
    </RunSettings>