- Overview
- Guides
- Concepts
- Considerations And Constraints
- Absolute File References
- Assembly Colocation Assumptions
- Concurrent Use Of Test Resources
- Cross Application Domain Testing
- Heavily Executed Code Under Test
- Implicit File Dependencies
- Multi Threaded Tests
- Project Atomicity
- Project Build Platform And Configuration
- Test Atomicity
- Using NCrunch With Source Control
- Reference
- Global Configuration
- Overview
- Build Process Memory Limit
- Coverage Marker Style
- Cpu Cores Assigned To NCrunch Or Vs
- Fast Lane Threads
- Log To Output Window
- Logging Verbosity
- Marker Colours
- Max Number Of Processing Threads
- Max Test Runners To Pool
- NCrunch Tool Window Colors
- Performance Aggregation Type
- Performance Display Sensitivity
- Sliding Build Delay
- Spinner Colours
- Terminate Test Runners On Complete
- Test Process Memory Limit
- Use Hosted Task Runner
- Workspace Base Path
- Solution Configuration
- Project Configuration
- Overview
- Additional Files To Include
- Allow Dynamic Code Contract Checks
- Allow Static Code Contract Checks
- Analyse Line Execution Times
- Build Process Cpu Architecture
- Consider Inconclusive Tests As Passing
- Copy Referenced Assemblies To Workspace
- Default Test Timeout
- Ignore This Component Completely
- Include Static References In Workspace
- Instrument Output Assembly
- Ms Test Thread Apartment State
- Preload Assembly References
- Prevent Signing Of Assembly
- Proxy Process File Path
- Run Pre Or Post Build Events
- Use Build Configuration
- Use Build Platform
- Use Cpu Architecture
- Runtime Framework
- Global Configuration
- Troubleshooting
- Keyboard Shortcuts
- Manual Installation Instructions
Compatibility Mode
Description
Although NCrunch doesn't have a distinct 'compatibility mode' feature that can be turned on and off, compatibility mode does exist as a general concept that can be used to help with troubleshooting problems experienced when using NCrunch.
NCrunch has a range of different configuration settings that control the behaviour of its workspacing, build process and test runner. The default configuration settings have been carefully chosen to strike a balance between performance and compatibility that should allow many solutions to work with minimal configuration changes required. However, when problems are experienced, it can be very difficult to identify which configuration options should be changed and how to identify the true cause of the problems.
Turning on compatibility mode is an activity that can make this troubleshooting easier.
Turning On Compatibility Mode
Compatibility mode is a configuration state where a number of options are set to offer the closest possible alignment between NCrunch and a normal build/testing situation.
To turn on compatibility mode, adjust the following configuration settings. Note that you can use multiple selection in the configuration pane when applying project-level settings. Project-level settings should be applied to all projects in the solution.
Category | Setting | Default Value | Suggested Value | Reasoning |
---|---|---|---|---|
Global | Use Hosted Task Runner | True | False | Closer alignment with standard .NET test processes |
Solution | Allow Parallel Test Execution | False | False | Remove concurrency considerations |
Project | Instrument Output Assembly | True | False | Avoid manipulation of assemblies after build |
Project | Include Static References In Workspace | True | False | Closer build alignment |
Project | Pre-load Assembly references | False | True | Tighter test environment control |
Project | Copy Referenced Assemblies To Workspace | False | True | Closer build alignment |
Project | Run Pre-Build Event | False | True | Closer build alignment |
Project | Run Post-Build Event | False | True | Closer build alignment |
Recommendations
Compatibility mode can be useful for narrowing down and solving problems encountered when introducing NCrunch to an existing solution. However, it should not be considered a normal working mode, as the compatibility mode settings involve turning off many of the features that make NCrunch useful.
Once problems have been isolated and corrected, it is strongly recommended that you reverse the compatibility mode settings in order to re-enable NCrunch features and improve performance. Where custom configuration does not yet exist, a simple way to do this is to close down Visual Studio, deleting NCrunch solution and project configuration files, then reloading Visual Studio and re-enabling NCrunch for the solution.
