Changes in v3.15

This version of NCrunch is compatible with grid node servers from v3.14 and v3.13. Older grid nodes
must be updated before they can be used with this version.


Introduced a new configuration setting, 'Pipeline Optimisation Priority'. This setting controls the behaviour
of NCrunch when placing tests in the pipeline. When set to 'Responsiveness' (the default value), NCrunch will
prioritise tests to try and get the fastest and most relevant results as quickly as possible. When set to
'Throughput', NCrunch will arrange tests in the pipeline to try and minimise the overall execution time of the
pipeline. This should allow NCrunch to be configured to reduce the end-to-end running time of the test suite
when placed into a CI system with the console tool.

Adjusted the NCrunch Console Tool so that when using this tool, the new 'Pipeline Optimisation Priority' setting
will default to 'Throughput'. This should reduce the length of end-to-end runs when using this tool.

Updated the layout of the Test List Coverage popup window for better visual alignment and clarity.

Updated the layout of the Exception Coverage popup window. Instead of meshing the tests and their exceptions
together in a tree view, the tests are now shown above the exceptions in a master-detail form. The overall
popup has been adjusted for better alignment/sizing and improved clarity.

Updated the selection bars throughout the NCrunch UI for a cleaner and more modern look.

Added a raw dump of settings with their values to the beginning of the trace log for the NCrunch Console Tool.
This should make it easier to establish which settings are being used by the tool when it runs.

Introduces several internal optimisations to improve the speed at which the processing queue can add and find tasks.
This should significantly reduce engine core load on solutions with many projects and tests.

Added ignored tests to the TeamCity output

Added reporting of ignored tests in Team City that were ignored manually or excluded via the engine settings.


Made significant internal modifications to the behaviour of NCrunch's test pipeline and processing queue to
resolve a broad range of problems related to tasks being updated inside the queue. This should resolve many
small and infrequent but annoying problems with the following symptoms:
- Tests sometimes not being run when they should be
- Tests not being run with the correct priority/sequence
- Tests not being grouped optimally
- Test atomicity not being respected
- Suboptimal performance

Added an error message when running the console tool without the NCrunchCacheStoragePath configuration set. This
option always should be set when using the console tool under a CI system for the console tool to function
properly between different runs.

Fixed an issue where multi-targeted netstandard projects could be resolved incorrectly when referenced by projects
targeting other platforms.

Improved TeamCity test name reporting for tests that use DistributeByCapabilities, TestCases, Multi Framework
Targeting and Shared Projects.

Fixed the current window losing focus when hovering over a coverage marker in an undocked window that doesn't
have focus

Fixed broken rendering on the far right side of the tree grid control column headers.

Adjusted the rendering of test names in the UI so they don't show the empty (in ) when the test has no namespace.

Adjusted the colours used for the status values in the Distributed Processing Window to improve visibility in
certain scenarios.

Fixed an issue that could cause exceptions to be thrown in NCrunch's coverage tracking.

Fixed incorrect icons showing on some of the configuration model dialogs.

Updated the error message given for a failed MSBuild restore of Nuget packages required for normal operation of
NCrunch. The previous error message did not mention that this might not be a critical error. The new message
gives a better explanation of the problem.

Fixed an issue where the exception tooltips weren't rendering correctly in some multi-monitor scenarios.

Fixed coverage markers for projects that have PathMap set.

Fixed a performance problem that could cause the engine to lock up for long periods of time when working with
solutions containing many interdependent projects.

Fixed current undocked editor window losing focus when hovering over a coverage marker.

Fixed an issue where tests targeted by churn mode could have their coverage results overridden by concurrently
executed passing test runs after they failed during the churn.

Fixed an issue where MSTest DataRow tests using a null value as the second parameter would cause an NCrunch
exception when using static analysis.

Fixed an issue where churn mode target failure results could be accidentally overwritten by the engine with passing
results in scenarios with high concurrency.