c# – 如何并行运行MSpec测试程序集?

我们有以下设置:

> Team City v8.1.2
> .NET 2013解决方案,包含多个不同的C#项目(ASP.NET MVC,
图书馆,测试项目等)
> 95%的测试都是MSpec,但我们也有一些NUnit测试.
>我们有14个测试项目正在增长……

目前,测试阶段大约需要9分钟进行MSpec测试,1分钟进行NUnit测试.我们希望开始并行化,因为我们希望测试数量能够快速增长.什么是最好的解决方案,前提是:

> MSpec似乎没有任何并行的跑步者.
>测试应该按照程序集并行化,测试在同一个程序集中按顺序运行.
>并行化不应影响我们显示构建结果的方式.我们仍然希望一切都按现在的方式进行聚合.
>在开发人员的机器中不应该与本地执行产生任何摩擦.无论设置如何,都不需要在本地运行我们的测试更复杂.如果解决方案,无论它是什么,允许我们在本地并行运行测试,这将是伟大的.
>我们更倾向于使用每个构建代理的并行功能,而不是在多个代理上运行,因为我们按代理付费.

最佳答案 要与TeamCity并行运行MSpec测试,您可以使用
mspec-teamcity-prunner.exe,这是标准MSpec运行器的直接替代品.

在TeamCity中创建/编辑标准MSpec Build Step,然后用mspec-teamcity-prunner.exe替换mspec.exe的路径

默认情况下,该工具最多可以并行运行2个测试程序集,但这可以通过使用–threads N)(例如,4个线程中的–threads 4)在Additional command line parameters:字段中进行控制.

点赞