By default, NCrunch supports four basic modes of operation. You can toggle between these options through the top menu in Visual Studio. It's also possible for you to customise NCrunch's operation mode for maximum control over the continuous behaviour.
This is the default mode of operation for NCrunch. When in automatic mode, NCrunch will monitor your open windows (along with the file system) for changes made to your projects. As soon as changes are made, NCrunch will automatically build the affected projects then churn through all of the tests in projects related to the change.
When in manual mode, NCrunch will still monitor all changes to your code and build your projects automatically, but it will not run tests until told to do so. When selecting the Run All Tests option in the top menu or the tests window, execution of these tests will be kicked off in their usual order of priority. This allows you to make several changes in a batch, then have the tests kick off all at the same time and in the most efficient sequence possible.
Manual mode is particularly useful if you are in a situation where the code you are writing is intentionally unstable and is simply not ready for testing. You can also use it as a substitute for automatic mode if you generally wish to have more control over when tests are run - but it is important to still ensure you run your tests routinely, as otherwise your code coverage can get out of date.
This mode is best described as semi-continuous. NCrunch will act as though set in manual mode, but it will still automatically queue tests for execution that have been pinned to the Tests Window. This mode is ideal for still getting many of the benefits of a continuous test runner on solutions that haven't been designed with NCrunch in mind. Under this mode, newly created tests will be automatically pinned to the Tests Window.
When in this mode, NCrunch will only automatically execute tests that it believes have been impacted by changes made to the codebase. Only impacted tests will be shown with faded inline code coverage in the UI. Be aware that no form of impact detection is 100% accurate. Tests should always be run before committing code to a source control system, even if they are not considered to be impacted.
NCrunch allows you create custom modes of operation. An engine mode itself is a very powerful option that can override most settings within the engine. The 'Customise Engine Modes' option in the 'Set Engine Mode' drop down menu will open a modal form to make customisation possible.
Engine modes give very broad control over the engine. The settings underneath the 'Filters' group can declare filters as complex as they need to be. Filter options are widely ranged and can include many attributes specific to a test, such as its category, usage of resources, failure and impact status, etc.
Because engine modes can override almost all global and solution-level settings, they can be used to change NCrunch UI elements, performance settings, workflow options, etc. With the flick of a switch, it becomes possible to use NCrunch in an entirely different way.
Engine mode settings overrides are fit within the NCrunch configuration system.