Hello,
When running our build in the build server (TeamCity), we have the ncrunch engine mode set to
Run impacted tests automatically, others manually and we supply this global config to the ncrunch console ...
Code:
<EngineMode>
<Name>Run impacted tests automatically, others manually</Name>
<Settings>
<AlignOutOfDateStatusWithImpactStatus>True</AlignOutOfDateStatusWithImpactStatus>
<TestsToExecuteAutomatically>IsImpacted</TestsToExecuteAutomatically>
</Settings>
</EngineMode>
The solution specific ncrunch
.ncrunchsolution file has this setting in it ..
Code:
<EngineModes>
<EngineMode>
<Name>Run all tests automatically</Name>
<Settings />
</EngineMode>
<EngineMode>
<Name>Run impacted tests automatically, others manually</Name>
<Settings>
<AllowParallelTestExecution>True</AllowParallelTestExecution>
<ShowCoverageForTests>True</ShowCoverageForTests>
<ShowMetricsForTests>True</ShowMetricsForTests>
<TestsToExecuteAutomatically>IsImpacted</TestsToExecuteAutomatically>
</Settings>
</EngineMode>
</EngineModes>
When running the project locally, NCrunch runs correctly by prioritizing impacted tests. However, we find that the build server still runs all of tests in the solution.
As part of trying to figure this out, I would like to know how does NCrunch know how to calculate a list of changed tests : does it diff with previous binaries or keep a list in a cache folder somewhere?
I ask this because it is possible that we might be clearing out the wrong set of folders as part of the build on the server or perhaps not setting a cache path the right way.
Any help would be appreciated.
Thanks.