Changes in v1.46


New Features:

NCrunch.Framework attributes can now be applied at assembly level. When this is done, NCrunch will consider
each test fixture within the assembly as though it has been adorned with the assembly level attribute. This
applies to attributes: Category, ExclusivelyUses, InclusivelyUses, Serial and Isolated.

Added a new 'under cursor' menu option to unpin all tests covering the current line of code, with the hotkey
'Ctrl+M, Ctrl+O'.

Added a warning for when Microsoft Fusion logging is enabled, as this impacts NCrunch performance.

Introduced a number of optimisations to the core engine to improve performance.



Fixes and Compatibility Improvements:

Fixed an issue where ncrunch solution configuration files were being created for solutions that NCrunch had
never been enabled on.

Fixed an issue where .NET 4.0 and above projects making use of AllowPartiallyTrustedCallersAttribute were
experiencing runtime clashes with NCrunch's performance analysis. Performance analysis is now automatically
disabled for these projects and a meaningful warning is shown describing how the problem can be resolved.

NCrunch will no longer attempt to enforce timeouts for Xunit and NUnit tests that are attributed with timeout
attributes specific to these frameworks - instead it will allow the framework to enforce timeouts itself.
Previously, NCrunch would attempt to double-enforce this timeout which could result in race conditions and
unstable behaviour within the test environment.

Fixed an issue where tests were not being automatically selected in the Tests Window when they were pinned.

Fixed an issue where the execution times of timed out tests would be misreported as being much larger than
they should be.

Fixed an issue where timeouts enforced by NCrunch would sometimes misreport themselves in the test output
text.

Upgraded the Xunit version packaged with NCrunch to 1.9.1.

Fixed an issue where $(SolutionName) was not being properly handed in to MSBuild while NCrunch was loading projects.

Fixed an issue where NCrunch was stripping the 'Private' elements from assembly/project references in its build
environment.

Fixed an issue where the MSTest ExpectedException attribute was not being properly applied to async tests.

Adjusted the NCrunch build process to better support the extension SDKs used by Windows Store projects.

Adjusted the font in the exception popup window output text so that it is monospaced.

Renamed the 'All Solutions' node at the top of the configuration window tree to the much more descriptive
'General Settings'.

Fixed an issue where NCrunch was not correctly re-signing built assemblies where only v7.0 of the Windows SDK was
installed.

Introduced a speculative fix to try and resolve an issue where the first engine mode in the NCrunch submenu is
shown as a placeholder.

Improved analysis-time error handling to provide more detailed information when reflection exceptions are thrown
from user code.

Fixed an issue where the MSTest runner was not automatically setting the AppDomain's DataDirectory value prior to
executing tests.

Fixed an issue where changing public constant values referenced across projects was causing NCrunch to get out
of sync.

Added automatic detection of code analysis custom ruleset file dependencies.

Introduced a speculative fix to solve a problem where test output text would not show correctly when a test is
selected in the Tests Window.

Fixed an issue that could cause ArgumentExceptions during build of some projects.

Fixed a mapping issue that could cause code coverage corruption problems.

Fixed an issue that could cause the engine to bug out occasionally when using a sliding build delay.

Fixed an issue that could cause state synchronisation problems between the UI and core engine, resulting in
erratic behaviour including tests being run against older versions of the source code.

Fixed an issue that could cause problems with NUnit extensibility

Fixed an issue where read-only .user files could cause NCrunch to blow up.