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





5.00/5 (1投票)
使用 MSTest v2 并行执行单元测试
引言
如果您在每次检入时运行单元测试,或者您有很多单元测试并且想要提高执行时间,那么这篇文章就是为您准备的!
我将向您展示如何在您的当前测试项目中实施一些更改,以便从 Visual Studio 本地提高执行时间,同时也在 TFS 构建管道中提高执行时间。
测试结果 - 更改前
在应用更改之前,此构建步骤需要大约 10 分钟。
测试结果 - 更改后
应用更改后,构建步骤时间减少了近 5 分钟。
要应用的更改
您需要在项目中从 nuget 安装两个包:MSTest.TestAdapter
和 MSTest.Framework
。
您还需要从项目中删除默认安装的包“Microsoft.VisualStudio.QualityTools.UnitTestFramework
”。
现在,您只需要在单元测试项目中的某个类中添加程序集属性,在我的例子中,我将其添加到 BaseTest
类中。
变量 Workers
和 Scope
可以根据您自己的自定义进行更改
Workers = 0
(根据 CPU 和核心数量使用尽可能多的线程)Workers = X
(X
是执行测试的线程数)Scope = ClassLevel
(每个线程执行项目中的一个TestClass
)Scope = MethodLevel
(每个线程执行一个TestMethod
)
TFS 构建定义
在构建定义中,如果您的 Agent 服务器使用的是 Visual Studio 2015,您只需要更新字段“自定义测试适配器路径”,您需要在该字段中指定先前添加到项目的 MSTest.TestAdapter.dll。
最后,此更改将执行速度提高了近 50%。
历史
- 2019 年 4 月 2 日:初稿