- 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
- Netstandard Test Projects
- Project Atomicity
- Project Build Platform And Configuration
- Rdi Data Point Location
- Test Atomicity
- Unique Test Names
- Using NCrunch With Source Control
- Reference
- Global Configuration
- Overview
- Auto Adjust Clashing Marker Colours
- Build Log Verbosity
- Build Process Memory Limit
- Capabilities Of This Computer
- Coverage Marker Style
- Cpu Cores Assigned To NCrunch Or Ide
- Custom Environment Variables
- Disable Global Hotkey
- Engine Hosting Strategy
- Fast Lane Threads
- Fast Lane Threshold
- Grid Maximum Reconnection Attempts
- Grid Reconnection Delay
- Impact Detection Mode
- Listening Port
- Log To Output Window
- Logging Verbosity
- Marker Colours
- Max Failing Test Trace Log Size
- Max Number Of Processing Threads
- Max Passing Test Trace Log Size
- Max Test Runners To Pool
- NCrunch Tool Window Colors
- Node Id (Name)
- Password
- Performance Aggregation Type
- Performance Display Sensitivity
- Pipeline Optimisation Priority
- Rdi Storage Settings
- Sliding Build Delay
- Snapshot Storage Directory
- Solution Storage Data Limit
- Spinner Colours
- Terminate Test Runners On Complete
- Test Process Memory Limit
- Tests To Execute On This Machine
- Text Output Font
- Workspace Base Path
- Solution Configuration
- Overview
- Additional Files For Grid Processing
- Additional Files To Include
- Allow Parallel Test Execution
- Allow Tests In Parallel With Themselves
- Infer Project References Using Assembly
- Instrumentation Mode
- NCrunch Cache Storage Path
- Only Consider Tests Outofdate If Impacted
- Project Config File Storage Path
- Show Coverage For Tests
- Show Metrics For Tests
- Tests To Execute Automatically
- Project Configuration
- Overview
- Additional Files To Include
- Allow Dynamic Code Contract Checks
- Allow Static Code Contract Checks
- Analyse Line Execution Times
- Autodetect Nuget Build Dependencies
- Build Priority
- Build Process Cpu Architecture
- Build Sdk
- Collect Control Flow During Execution
- Consider Inconclusive Tests As Passing
- Copied Project Dependencies
- Copy Referenced Assemblies To Workspace
- Custom Build Properties
- Data Storage File Size
- Default Test Timeout
- Detect Stack Overflow
- Enable Rdi
- Files Excluded From Auto Build
- Framework Utilisation Types
- Ignore This Component Completely
- Implicit Project Dependencies
- Include Static References In Workspace
- Instrument Output Assembly
- Method Data Limit
- Ms Test Thread Apartment State
- Preload Assembly References
- Prevent Signing Of Assembly
- Proxy Process File Path
- Rdi Cache Size
- Required Capabilities
- Restrict Tostring Usage
- Run Pre Or Post Build Events
- String Length Limit
- Track File Dependencies
- Use Build Configuration
- Use Build Platform
- Use Cpu Architecture
- Runtime Framework
- Overview
- Atomic Attribute
- Category Attribute
- Collect Control Flow Attribute
- Distribute By Capabilities
- Duplicate By Dimensions
- Enable Rdi Attribute
- Environment Class
- Exclusively Uses Attribute
- Inclusively Uses Attribute
- Isolated Attribute
- Method Data Limit Attribute
- Requires Capability Attribute
- Restrict Tostring Attribute
- Serial Attribute
- String Length Limit Attribute
- Timeout Attribute
- Uses Threads Attribute
- Global Configuration
- Troubleshooting
- Tools
- 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 |
---|---|---|---|---|
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 |
Project | Track File Dependencies | True | False | Avoid low level API hooks during test execution |
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 your IDE, deleting NCrunch solution and project configuration files, then reloading your IDE and re-enabling NCrunch for the solution.