Changes in v4.4

-----------------------------------------------------------------
Release notes for 4.4.0.12 since version v4.3.0.13
-----------------------------------------------------------------

*****
This version of NCrunch introduces changes to the grid protocol. This means that grid
node servers must be updated before they can be used with the new version.
*****

Added the option to duplicate tests by a given dimension via a new attribute in
NCrunch.Framework called DuplicateByDimensions. The tests will be executed for each supplied
dimension and the dimension name will be available via a call to
NCrunchEnvironment.GetDuplicatedDimension() or the environment variable
NCrunch.DuplicatedDimension.

Fixed a VS integration issue that was causing NCrunch to reload and rebuild an entire
project every time a source file in a CPS project was saved to disk. This would result in
entire build trees being run without good reason, significantly degrading performance.

Added a new environment variable, 'NCrunch.IsHighPriority'. When NCrunch is running the test
with high priority, this environment variable will be set to '1'. Its value can also be
accessed through the NCrunch.Framework assembly under NCrunchEnvironment.IsHighPriorityTask.

Added 'IsFixtureTest' and 'IsNotFixtureTest' expression filter options to allow filters to
identify whether tests are parent fixtures or child tests.

Added a parameter to the console tool called TeamCityTestFilter. This parameter can be used
to add a filter to the tests reported to TeamCity. The filters are the same filters that
can be specified under the engine mode filter "Tests to execute automatically".

Fixed an issue where the .NET core runtime would fail to load the runtime environment under
NCrunch when working with a test project set to target Microsoft.NET.Sdk.WindowsDesktop with
the UseWindowsForms property set to true.

Added a 1500ms delay to the reload of CPS projects after changes have been detected in-memory.
This is being done temporarily to work around a recently introduced issue in VS2019 where VS
seems to swallow service calls made within a short time of the project changing.

Fixed IPv6 support for the NCrunch Grid nodes.

Added global line code coverage statistics to the TeamCity integration in the console tool.

Fixed a problem when adding a code analysis ruleset that was referenced with an absolute path.

Improved the Allow code analysis setting. This now works with Roslyn analysers.

Implicit project dependencies specified in the NCrunch configuration now support selecting
a specific multi targeted project.

Fixed an issue that could prevent NCrunch from processing PDB files produced from empty
projects when using optimised mode.

NCrunch now respects TargetFramework directives supplied to ProjectReferences via the
AdditionalProperties and SetTargetFramework tags.

Added the option to filter on out of date tests in custom engine modes.

Amended the error message for the restore of NCrunch-related packages to describe a possible
situation where the package restore may have failed due to inadequate privileges.

Restructured the VS2019 project loader system in an attempt to improve reliability.

Fixed an issue where NCrunch would fail to properly handle the failed parsing of project file's
XML content.

Fixed an issue that was causing the project loader to complain about unrecognised
FrameworkReferences when working with some multi-targeted projects.

Fixed an issue that was preventing NCrunch from running MSpec behaviors with multiple generic
parameters under optimised mode.

NCrunch will now present a warning when working with NUnit3 projects that make use of
NUnit.Framework.ParallelizableAttribute. NCrunch cannot reliably support this attribute and
the use of it can result in instability during test execution.

Adjusted the handling of test entry points so that these will still be shown inline even when
a coverage filter is active.

Fixed an issue that was preventing execution of MSpec generic behaviors when using optimised
instrumentation mode.

Fixed an issue where NCrunch would fail to discover generic test fixtures under dynamic
analysis in NUnit2.

Fixed an issue where NCrunch was corrupting large x64 assemblies during instrumentation when
working under optimised mode.

Coverage Data is now cleared when you right click a test in Tests window and select
Advanced>Reset selected test status.

Improved the storage of splitter positions to cope with different DPI settings per
monitor/session.

Fixed a performance issue where removing a large number of UI navigation markers could cause
the engine to temporarily stall.

Fixed an issue that could prevent navigation markers from being properly removed.

Adjusted the handling of navigation markers to improve performance when dealing with many
markers.

Improved the rendering speed of the coverage markers.

Made a speculative to prevent locked hashcache files.