Wednesday, July 12, 2006

NCoverExplorer... v1.3.4

It's been a little while since the 1.3.3 release, but NCoverExplorer overload meant I had to take a break to keep some sanity. This release combines some important bugfixes with a small number of new features.

Firstly the new features:
  • On the toolbar of the NCoverExplorer GUI you will find four new buttons for navigating unvisited lines and classes. These have shortcut keys of 'N'/'P' (or forward/back mouse buttons) for the next/previous unvisited line in the current class. Use 'Ctrl+N'/'Ctrl+P' for next/previous unvisited class in this namespace (or Ctrl + forward/back mouse buttons). Thanks Jamie for the mouse button suggestion, it rocks!

  • You can use NCoverExplorer.Console.exe to merge and save your NCover coverage.xml files. Coverage exclusions will be applied prior to the save of the consolidated xml file. Wildcards are supported for the coverage filenames, so for instance you can do this:

    ncoverexplorer.console.exe *.ncover.xml /s:coverage.merged.xml

    If using the NAnt or MSBuild tasks from the latest, you can add a new attribute "mergeFileName" (NAnt) or "MergeFileName" (MSBuild) containing the filename for the results.

  • Module level coverage thresholds are now possible using NCoverExplorer.Console.exe, rather than just a single threshold for your project. This is for people wanting more granular control where specific assemblies are deemed unrealistic to attain the same coverage as your overall goal, without seeing "failure" forever on coverage reports.

    For NAnt, add this section within your <ncoverexplorer> task:

    <ncoverexplorer ...
    moduleThreshold moduleName="MyAssembly1.dll" satisfactoryCoverage="30" />
    moduleThreshold moduleName="MyAssembly2.dll" satisfactoryCoverage="80" />

    For MSBuild, you can add this attribute to the <NCoverExplorer> task:

    <NCoverExplorer ...
         ModuleThresholds="MyAssembly1.dll=30;MyAssembly2.dll=80" />

    For complete examples refer to "" and "example.proj" within the file. If you do not want to use the NAnt/MSBuild tasks then you can use the command line with the /c option for a config file. The syntax is the same as for the NAnt <ncoverexplorer> task above - see the ConsoleExample.config file in your NCoverExplorer folder.

  • There is a new code coverage report, which drills down to classes per namespace per module. This is my "favourite" report we use on our CruiseControl.Net build servers. To generate this report the magic number is "4" for your report type attribute in the command line, NAnt and MSBuild tasks.
  • Updates to the CruiseControl.Net build summary stylesheet, so that it lists all of the assemblies, their coverage and whether they passed/failed as well as the overall project coverage. Note that this stylesheet now has a dependency on a transparent.gif file being placed in your CruiseControl.Net images folder. See the readme in for details.
  • Added the ability to change source code paths for a loaded coverage file in the NCoverExplorer GUI. Sometimes you will be generating coverage files on another machine (such as a build server) that you want to browse - this feature allows you to override the embedded location to find the source code files in.

In terms of bug fixes, the most important that I blogged about recently is a solution for an issue when merging multiple coverage files. There are also fixes for memory leaks and various other minor GUI issues - see the release notes for full details.

As always, please drop me an e-mail through Help->Send Feedback if you have found any bugs or suggestions.

One final point - no doubt most people reading this have heard about Jamie Cansdale "going commercial" with TestDriven.Net. Jamie has been out there upgrading and supporting this great add-in for many years, for which many of us have enjoyed the benefits of "for free". Having had a small taste of what is involved in the last six months with NCoverExplorer you quickly gain an appreciation of just how much of your "life" supporting and enhancing these tools can consume! I wish him all the best in his opportunity to gain a return for those efforts - his continual innovation with TestDriven.Net continues to help fill the many gaps in the Microsoft "out of the box" tools to make for a far more productive development experience.

Download TestDriven.Net 2.0 combined install

Download the latest NCoverExplorer versions from here.

Release Notes


At July 20, 2006 6:54 PM, Anonymous Jeff Brown said...

It works great!

At July 31, 2006 3:34 PM, Anonymous Anonymous said...

The one bug I've found so far relates to the new "alternate location for source code" feature. Cool idea, but the issue I have is that I'm building the code on another machine in a directory different from the directory where the source exists on my machine. However, there is an *out of date* copy of the source in that location on my local machine. So I get an error that says

Could not find source code to match @ 27,13


Run NCover again to ensure the coverage is in sync with the latest source.

This would be no big deal if this particular error allowed me to invoke the "specify alternate location" dialog box. However, it does not.

Oh, and leaving a blog comment really sort of sucks as a bug tracking mechanism. It doesn't really give me a good way to track what happened to the issue, doesn't email me when the issue is resolved, doesn't give others a convenient way to comment, etc.

These are tiny warts on an otherwise fantastic product. Thanks for a great tool!

-Craig Andera

At July 31, 2006 3:51 PM, Blogger kiwidude said...


Good point on the out of date source code - hadn't thought of that. Will add a feature in for the next release to prompt as you suggest.

As for "bugs in blog comments" - well you could have e-mailed me instead ;-) I take your point though. I actually use FogBugz for bug tracking which is great - however the only negative is that it is not publicly viewable for "people to view and comment on". I have never used JIRA so a learning curve on that option which takes time I don't have at the moment. I could ask Peter to create me a forum at his NCover site perhaps. I havent done anything until now as I wasnt sure where this is going etc... and still don't! ;-)

At August 21, 2006 11:16 PM, Blogger kiwidude said...

In case Craig or anyone reads this - you can now of course post all your NCoverExplorer issues over on the NCover site at:

The latest 1.3.5 beta build has the feature request implemented for out of date source code prompting the change path dialog.

At August 01, 2007 11:24 AM, Blogger FireFly said...

Im really only interested in the cool xsl stylesheet and getting it to look like that in Cruise Control.

But i can't get it to work with my Coverage.xml that is output by nCover??

The XSL Stylesheet (CoverageReport.xsl) seems to look for 'coverageReport' which doesn't even exist in Coverage.xml output by nCover.

Please help as i really live the screenshot of the new CoverageReport XSL Stylesheet.

At August 01, 2007 8:03 PM, Blogger kiwidude said...

Firefly - the stylesheets I ship with NCoverExplorer only work with the transformed coverage.xml file, not the raw one. You can transform the xml file use the ncoverexplorer.console.exe application, either directly or via the ncoverexplorer NAnt/MSBuild tasks. Alternatively you can generate the report from within the NCoverExplorer GUI (obviously that is an interactive step though).

At March 16, 2009 9:28 PM, Blogger Roy Osherove said...

Is it ok if I include the coverage report graphic in my book "Art of unit testing"? I need an example of a report you can show, and this looks really nice.

please email me at roy AT for questions but I will monitor the comments as well.


Post a Comment

Links to this post:

Create a Link

<< Home