MSpec is absolutely great – no argument about it. I am using it exclusively in a current project to specify and test top to bottom. However one thing that has been bugging me for a long time is the inability to run tests in parallel on TeamCity. Most Visual Studio tools support it (CodeRush, ReSharper, etc) – why shouldn’t it be possible to do it on the build server? And as test run time kept increasing I finally got fed up and did something about it.
I am pleased to announce mspec-teamcity-prunner.exe. It is a drop-in replacement for the default console runner (mspec.exe) with the major difference that through the –threads N parameter you can specify the number of assemblies to run in parallel.
Drop-in replacement means that all you need to do is swap the path to mspec.exe with the one to mspec-teamcity-prunner.exe in your TeamCity Build Step.
For me this has lead to ~70% reduction in the time it takes to run our MSpec test suite.
Details on the project and installation instructions/NuGet package here: