我们有以下设置:
目前测试阶段大约需要9分钟进行MSpec测试,1分钟进行NUnit测试。我们希望开始并行化,因为我们希望测试数量能够快速增长。什么是最好的解决方案,只要:
答案 0 :(得分:2)
要与TeamCity并行运行MSpec测试,您可以使用 mspec-teamcity-prunner.exe ,这是标准MSpec跑步者的替代品。
在TeamCity中创建/修改标准MSpec Build Step
,然后将mspec.exe
的路径替换为mspec-teamcity-prunner.exe
默认情况下,该工具最多可并行运行2个测试程序集,但可以通过--threads N)
字段中的--threads 4
(例如Additional command line parameters:
4个线程)来控制。{ / p>
答案 1 :(得分:0)
我不确定您是如何配置构建的测试部分的:MSBuild exec
任务,Albacore mspec
命令或内置TeamCity {{ 3}}。无论如何,它们都会在某个时刻运行mspec命令行。 mspec的命令行用法是将所有测试程序集传递给测试运行器。
> mspec.exe [options] <assemblies>
然后,通用解决方案是构造多个mspec运行,每个运行配置为运行单个程序集。
> mspec.exe [options] <assmebly1>
> mspec.exe [options] <assembly2>
> mspec.exe [options] <assembly3>
然后您将并行运行每个任务。我不认为TeamCity有并行步骤的概念。 MSBuild似乎也没有普通MSpec runner,但您可以使用parallel tasks伪造它。
其他构建系统确实提供并行任务,例如Rake an extension。如果配置每个单独的任务,则可以将父任务标记为并行运行所有相关任务。
multitask :test => [:test_assmebly1, :test_assembly2, :test_assembly3]