V3 Documentation
Search

Pipeline Optimisation Priority

Global-level NCrunch configuration setting Default Value:
Responsiveness (NCrunch VS Addin)
Throughput (NCrunch Console Tool)

Purpose

This setting controls the behaviour of NCrunch when it adds test tasks to the test pipeline.

When set to 'Responsiveness', NCrunch will try to arrange the test pipeline so that tests with a higher chance of failure will be run first.

When set to 'Throughput', NCrunch will try to arrange the test pipeline so that the pipeline can be cleared as fast as possible.

Recommendations

By default, NCrunch will prioritise 'Responsiveness' when running inside Visual Studio to try and give the most useful results as early as possible. Under the console tool, NCrunch will default to 'Throughput' to try and reduce the end-to-end build time for CI systems.

In environments where a large amount of parallelisation is possible (i.e. large grid nodes are available or high-end client machines), this setting can have a very significant impact on the behaviour of the engine. When set to 'Throughput', NCrunch will give a priority boost to tests with a long execution time, making them begin their execution earlier in the pipeline. This reduces the likelihood of a 'long tail' scenario where a small number of slow tests are left executing at the end of the run with many threads sitting idle.

When using NCrunch inside Visual Studio, changing this setting to 'Throughput' is not recommended unless you have a very large number of processing threads available. This is because NCrunch will give short running tests a much lower priority, so you may find yourself waiting for the engine to target tests that may be much more relevant to the area of code you are working on.