65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 MSTest v2 在单元测试中进行并行化

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2019 年 4 月 2 日

CPOL

1分钟阅读

viewsIcon

11867

使用 MSTest v2 并行执行单元测试

引言

如果您在每次检入时运行单元测试,或者您有很多单元测试并且想要提高执行时间,那么这篇文章就是为您准备的!

我将向您展示如何在您的当前测试项目中实施一些更改,以便从 Visual Studio 本地提高执行时间,同时也在 TFS 构建管道中提高执行时间。

测试结果 - 更改前

在应用更改之前,此构建步骤需要大约 10 分钟。

测试结果 - 更改后

应用更改后,构建步骤时间减少了近 5 分钟。

要应用的更改

您需要在项目中从 nuget 安装两个包:MSTest.TestAdapterMSTest.Framework

您还需要从项目中删除默认安装的包“Microsoft.VisualStudio.QualityTools.UnitTestFramework”。

现在,您只需要在单元测试项目中的某个类中添加程序集属性,在我的例子中,我将其添加到 BaseTest 类中。

变量 WorkersScope 可以根据您自己的自定义进行更改

  • Workers = 0(根据 CPU 和核心数量使用尽可能多的线程)
  • Workers = XX 是执行测试的线程数)
  • Scope = ClassLevel(每个线程执行项目中的一个 TestClass
  • Scope = MethodLevel(每个线程执行一个 TestMethod

TFS 构建定义

在构建定义中,如果您的 Agent 服务器使用的是 Visual Studio 2015,您只需要更新字段“自定义测试适配器路径”,您需要在该字段中指定先前添加到项目的 MSTest.TestAdapter.dll

最后,此更改将执行速度提高了近 50%。

历史

  • 2019 年 4 月 2 日:初稿
© . All rights reserved.