NCover v3.1 unveiled! Bad code flees!

NCover v3.1 unveiled! Bad code flees!

Joe and Steve, our lead developers, and the entire NCover team are pleased to announce that we have released NCover v3.1 today. We listened to a ton of great feedback from the community about our v3.0 platform and went to work to make the leading .NET code coverage platform EVEN BETTER. Thanks for your help! A new key is not required if you are upgrading from NCover v3.0; just download, install and run.

You will already notice the new website that Ethan, Kevin and Alan spun up. We hope you like it as much as we do. Check it all out: better access to answers, better videos to get you started, and better navigation.

Take a moment to check out our partners, linked at the bottom of the page, while you download v3.1. Check back over the next few days as Joe will be working on explaining his new "diff" and trending reports that are part of this release. Until then, here is everything you wanted to know about the new product release:

Features and Improvements

  • Added Trend Reporting
  • Added Difference Report (The "Diff")
  • Added new //xslt flag which allows for loading of a custom xslt file for the reports.
  • Added new //literal flag allowing you to ignore the corrections we make when covering child processes using MSBuild and Gallio.
  • Acceptable Branch Percentage is now supported in the IDE and in all reports except FullCoverageReport.
  • Acceptable Cyclomatic Complexity is now supported in the IDE and in all reports except FullCoverageReport.
  • Added the ability to toggle if we should ignore failed builds in the Trend graph.
  • Added the ability to sync the coverage file exclusions back to the project (on by default).
  • Added the ability for the //cr to be specified multiple times from the ncover.reporting command line.
  • Updated the text and visuals on the RebasedSourceWindow depending whether it is looking for a missing or an out of date file.
  • You are now able to click on Project split button to load project options instead of using the "Manage Options" button.
  • You are now able to click on Coverage split button to load coverage file options instead of using the "Manage Options" button.

Changes

  • Module is now called assembly everywhere.
  • Sequence Points are now called Symbols.
  • Sample code now contains a link on the program menu.
  • Arguments appearing after a config-read statement now override settings in the config file, instead of being ignored.
  • Updated documentation to refer to //or instead of deprecated arguments.

Bug Fixes

  • The //at flag on the NCover.Console command line would create an exception if the file didn't exist.
  • If //h was used, NCover.Console ignored it and output the report to the current directory instead.
  • Bugs with the //sct flag.
  • Fixed bug where sct view options were not being placed on the view. We now add the view level items to the view first and everything will inherit from it correctly.
  • The FullCoverageReport now treats arguments from the //op and //or parameters as directories, like the documentation says it does and like 3.0.18 did.
  • The FullCoverageReport now clears out the files\ sub-folder if it exists when a report is created.
  • The algorithm that merged modules together as they came out of shared memory was merging instrumented points based solely on the offset, when it should have been merging based on offset and the type of point (symbol, branch, etc).
  • The type name of the CyclomaticComplexity object was being displayed instead of the maximum value when an object failed a CC threshold.
  • Fixed bug where we were showing "load trends" on the trend graph when a trend file was loaded in the graph.
  • Update the graph if you change the report style
  • Added missing MergeFilterMode for MSBuild and NAnt task items
  • Fix bug where if the list was less than the max fail to show, the entire list would be displayed. We now correctly limit the list to the max you tell us to use.
  • When the Rebase Source Window was launched from the search pane, it would throw an exception when it closed.
  • If a missing source file was 'ignored' by the user, NCE wouldn't load it, but the next time they clicked on the class NCE would ask them to locate the 'ignored' file.
  • If multiple classes were in the same missing source file and the user 'ignored' the first request, NCE would ask the user to locate the missing source file once for each other class in the source file.
  • Assemblies were not being filtered correctly due to the fact the name was fully qualified, including the version metadata. You no longer have to use a trailing * for the filters to work correctly.