Monday, October 30, 2006

NCoverExplorer... v1.3.5

The latest build (1.3.5.1921) is now available for download from this site, which includes updates to both NCoverExplorer and the NCoverExplorer.Extras.zip file (for the stylesheets and NAnt/MSBuild tasks). I have held off officially releasing for a while so as to offer the usual "combined installation" option with the TestDriven.Net 2.0 RTM which Jamie Cansdale has just released - congratulations Jamie!

The leading new feature in this release as I blogged about a number of weeks ago is enhanced integration with NCover for generating NAnt scripts, MSBuild scripts and command lines. These should support the whole gamut of permutations of NCover versions (1.3.3 and 1.5.x), with or without my custom NAnt/MSBuild tasks. Of course you can also choose to just run NCover directly from the same screen, with the results being displayed immediately within NCoverExplorer. For people not using TestDriven.Net or needing to report coverage without using the VS.Net IDE this should hopefully prove a useful option.

Function coverage is another significant enhancement. For a while now NCoverExplorer has had "function coverage" as just showing the #visits incurred by each method. This has now been expanded to include a wider range of options to show percentages of methods covered on a class and/or number of methods unvisited.

There is also a new coverage report "Module/Class Function Summary" which can be used within NCoverExplorer or CruiseControl.Net (please upgrade your CC.Net stylesheets).

A new filter option of "Hide All Above Threshold" has been added to supplement the existing options of hiding unvisited or 100% covered nodes. For those of you who set a threshold for coverage below 100% this option should allow you to focus quickly on just the elements of the codebase that require your attention. Filtering and sorting options are now automatically reapplied when refreshing/reloading files in a session.

Sorting and filtering applies to reports either from within NCoverExplorer or optionally from the command line. NCover.Console.exe adds new /sort: and /filter: arguments. Both these and the /report: arguments will now take either numeric values or the enumeration text, as do the NAnt/MSBuild tasks. Type ncover.console /? to see the full set of options.

A significant amount of refactoring has been done to the NAnt and MSBuild tasks for NCover/NCoverExplorer to fix some bugs with various NCover versions. As part of this exercise I ended up renaming the assemblies and namespaces. My apologies to those of you who have to update your scripts but it made the documentation generation and maintenance easier for me. Speaking of which, at long last some documentation for these tasks is published outside of the source code. It is available both within the NCoverExplorer.Extras.zip and found here for MSBuild and here for NAnt. You will also find these links on the NCoverExplorer Help menu.

On top of all that there have been the usual swarm of important bug fixes (such as a fix for memory leaks) and minor tweaks - please read the Release Notes for more details. As with every release I encourage you to upgrade so as to trade in your old known bugs for some shiny new ones.

While NCover 1.5.5 was released a little while ago there are unfortunately some "showstopping" issues with it not only with .Net 1.0/1.1 but also when used with NCoverExplorer. I posted the details about the problem here on the NCover forum. The issues will impact the integrity of your coverage results but there is absolutely nothing I can do to workaround the issues - garbage in, garbage out I'm afraid. Until NCover 1.5.6 is released your best bet may be to stick with NCover 1.3.3 or NCover 1.5.4 or else you may possibly end up with results like this:

For any issues with the release or further enhancement suggestions, please post to the NCoverExplorer forums or send me an e-mail (Help -> Send Feedback).