Changes in v1.43


New Features:

Adjusted the shape of code coverage markers so that they show a crossed out circle for the
first line of tests that have been ignored. This gives a useful way to identify why tests
are not being run by NCrunch when they are ignored.

Added a warning for situations where projects reference assemblies from the build output
directories of projects within the solution. This should help to make people more aware of
erroneous build situations that can cause inconsistent behaviour under NCrunch and MSBuild.

Added a new solution-level configuration option, 'Allow tests to run in parallel with themselves'.
This option controls whether NCrunch is allowed to run tests concurrently with themselves,
when parallel execution is enabled. This setting defaults to 'true'.

Added a new option to the context menu for projects shown in the Tests Window,
'Configure selected component'. When clicked, this option will open the NCrunch configuration
pane with the selected project(s) automatically chosen in the tree, making configuration much easier.

Added two new build properties that are present in NCrunch builds: $(NCrunchOriginalSolutionDir)
and $(NCrunchOriginalProjectDir). These properties hold the paths of the original solution
and project outside the NCrunch workspace, and can be used to implement complex build
customisations inside the NCrunch build process.

Revised the configuration options for NCrunch tool window colors, so that they are now adjusted
all at the same time via a modal dialog.



Fixes and Compatibility Improvements:

Fixed a performance issue that was causing vastly elevated build times for large projects.
The impact of this fix is significant - many large test assemblies are showing a build time
reduction of as much as 80%.

Fixed an issue where Xunit exceptions were being duplicated in the test output.

Fixed an issue where the license popup window was showing in situations where it shouldn't be.

Fixed a deadlock issue that could cause the NCrunch test runner to hang when attempting to
terminate code under test that had timed out.

Fixed an issue where builds could start executing before NCrunch had finished fully loading the
solution. This could create strange behaviour and instability within the NCrunch engine.

Adjusted the workspace management logic to try to prevent workspaces being used after deletion.

Fixed an issue where NCrunch's instrumentation was stripping the default value from primitive
type parameters that were being called across assembly boundaries.

Fixed an issue where the configuration panel was not showing the configuration options for
'All Solutions' when first opened, even though the node was clearly selected in the tree.

Disabled click-through navigation for entries in stack traces that point to files inside
the NCrunch workspace. This is intended to prevent accidentally clicking through and
modifying files in the NCrunch workspace without realising where the files are located, which
can be extremely confusing and a huge time waster.

Fixed an issue where project resource files were not being copied to the output directory of
referencing projects when the 'Copy Referenced Assemblies To Workspace' setting is set to True.

Fixed an issue where test entry points were not being shown in source files included by multiple
projects.

Removed NCrunch global configuration options under VS2008 that are not supported for VS2008.

Fixed multiple issues that were causing Windows Store projects to fail to build.

Fixed an issue that was preventing NCrunch from building projects that output .winmd files.

Strengthened NCrunch's ability to automatically identify file dependencies for heavily customised
builds.

Fixed an issue that would cause NCrunch to fail with assembly resolution errors when trying to
instrument portable class libraries.

Fixed an issue where the tests window was not reporting internal problems encountered during
NCrunch builds.

Fixed an issue where NCrunch's instrumentation could corrupt assemblies making use of generic
default parameters.

Fixed an issue where project load errors were not being shown by the corner spinner.

Fixed an incorrectly formatted version string in the license key entry window.

Fixed an issue where overrunning background threads in code under test could cause race conditions
in NCrunch's code coverage recording, resulting in seemingly random NullReferenceExceptions.