<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>TestDriven.NET by Jamie Cansdale : NCoverExplorer</title><link>http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx</link><description>Tags: NCoverExplorer</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>TestDriven.Net 2.20: Improved NCover Integration</title><link>http://weblogs.asp.net/nunitaddin/archive/2009/04/21/testdriven-net-2-20-improved-ncover-integration.aspx</link><pubDate>Tue, 21 Apr 2009 15:01:54 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7053374</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=7053374</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2009/04/21/testdriven-net-2-20-improved-ncover-integration.aspx#comments</comments><description>&lt;p&gt;In the latest &lt;a href="http://www.testdriven.net/download.aspx"&gt;release&lt;/a&gt; of &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt;, you’ll find much improved integration with all versions of &lt;a href="http://www.ncover.com/"&gt;NCover&lt;/a&gt;:&lt;/p&gt;  &lt;h3&gt;Support for 64-bit Windows&lt;/h3&gt;  &lt;p&gt;‘Test With &amp;gt; Coverage’ now works on 64-bit versions of Windows. In previous versions this could be made to work by compiling your test project for x86. The new version will automatically execute your tests in a 32-bit process if a 64-bit version of NCover can’t be found. (There is similar 64-bit Windows support for &lt;a href="http://www.jetbrains.com/profiler/"&gt;dotTrace&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2006/11/08/Driving-MSTest-and-Team-Coverage-using-TestDriven.NET.aspx"&gt;Team Coverage&lt;/a&gt;)&lt;/p&gt;  &lt;h3&gt;No more ‘Reload coverage file?’ dialog&lt;/h3&gt;  &lt;p&gt;NCoverExplorer 2.1 &amp;amp; 3.0 will no longer prompt to reload the coverage file. The coverage report will automatically refresh when new data is available. If you’re using NCover 3.0.18 or higher, you won’t be prompted to save a ‘New Project’ when you close NCoverExplorer.&lt;/p&gt;  &lt;h3&gt;Automatic assembly filtering&lt;/h3&gt;  &lt;p&gt;If you’re using NCover 3.0, only assemblies that have a corresponding PDB file will appear in the ‘Explorer’ window. I’m hoping this is a good alternative to explicitly naming assemblies that shouldn’t appear in the coverage support.&lt;/p&gt;  &lt;h3&gt;Support for Typemock Isolator&lt;/h3&gt;  &lt;p&gt;You can now execute ‘Test With &amp;gt; Coverage’ with NCover 3.0 and Typemock Isolator installed. (Previous versions would fail with the error: ‘Couldn't find TypeMock profiler name for NCover 3.0’.)&lt;/p&gt;  &lt;h3&gt;Recommended Versions of NCover &amp;amp; Typemock&lt;/h3&gt;  &lt;p&gt;If you have a commercial license for &lt;a href="http://www.ncover.com/"&gt;NCover&lt;/a&gt;, make sure you’re using NCover 3.0.18 or later. If you’re using &lt;a href="http://www.typemock.com/"&gt;Typemock Isolator&lt;/a&gt;, I recommend you use at least version 5.3.0. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;If you’d like more timely updates on new releases, you can find me on twitter &lt;/em&gt;&lt;a href="http://twitter.com/jcansdale"&gt;&lt;em&gt;here&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7053374" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>NCoverExplorer... v1.4.0</title><link>http://weblogs.asp.net/nunitaddin/archive/2007/10/10/ncoverexplorer-v1-4-0.aspx</link><pubDate>Wed, 10 Oct 2007 18:37:54 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4518199</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>44</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=4518199</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2007/10/10/ncoverexplorer-v1-4-0.aspx#comments</comments><description>&lt;p&gt;&lt;i&gt;Syndicated from &lt;a href="http://www.kiwidude.com/blog/"&gt;Kiwidude's Geek Spot&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;I've had this &amp;quot;quietly available&amp;quot; on the download page for a few weeks to gain feedback on any issues and with no known issues outstanding it seems appropriate to more publicly announce it.&lt;/p&gt;  &lt;p&gt;A big change in NCoverExplorer 1.4.0 is that it is no longer published under the GPL license. I made this change for a number of reasons; amongst which was the concern that a number of companies have of deploying GPL based tools into their development process. This roadblock has been removed and should no longer prevent your companies from using this toolset.&lt;/p&gt;  &lt;p&gt;My original choice of GPL was based on using the ICSharpCode 1.x texteditor control. I have now dropped that component in favour of using the superior (but commercial) Actipro SyntaxEditor control instead. The improvements are not only in stability and features but also visual as you can see below in the code highlighting screenshot. A splitter window is available as also shown.&lt;/p&gt;  &lt;p&gt;&lt;img id="id" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="431" alt="NCoverExplorer_1.4.0_Splitter" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/NCoverExplorer...v1.4.0_A38E/NCoverExplorer_1.4.0_Splitter_3.png" width="646" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;So why should you upgrade to NCoverExplorer 1.4?&lt;/p&gt;  &lt;p&gt;This release is less about adding new features (although there are some to be found) and more about stabilisation for the future. The core model code has been rewritten and better tested. There have been countless code coverage corner cases (say that five times in a row!) arise that should be better catered for. Better performance for .NET 2.0 users, lower resource usage, better error handling and some minor gui quirks addressed.&lt;/p&gt;  &lt;p&gt;Some of the &amp;quot;internal&amp;quot; changes have spilled over externally. For instance the configuration file format used by NCoverExplorer.Console with /c has changed to support new features, although I have retained legacy compatibility for those who choose not to upgrade their build scripts immediately.&lt;/p&gt;  &lt;p&gt;What about the new features? Well, the ones I did squeeze in were...&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for the //pm (profiling a process by name) argument in NCover 1.5.8; &lt;/li&gt;    &lt;li&gt;Copy command in the source code text area via right-click; &lt;/li&gt;    &lt;li&gt;Print preview command in the File menu; &lt;/li&gt;    &lt;li&gt;/fc argument for NCoverExplorer.Console to fail a build if the combined total coverage of all assemblies does not meet the minimum specified. This was the original behaviour of the /f command before it was changed to fail if any individual assembly does not meet the minimum; &lt;/li&gt;    &lt;li&gt;Coverage exclusions now support the '?' wildcard and multiple '*' wildcards within the expression. &lt;/li&gt;    &lt;li&gt;Report xml contains a &amp;quot;totalSeqPoints&amp;quot; attribute as requested for developers writing alternate xsl reports that need to calculate the excluded code at each level; &lt;/li&gt;    &lt;li&gt;Update the NAnt/MSBuild task dlls to support the latest changes; &lt;/li&gt;    &lt;li&gt;Redesigned the options dialog as shown below; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img id="id" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="380" alt="NCoverExplorer_1.4.0_Options" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/NCoverExplorer...v1.4.0_A38E/NCoverExplorer_1.4.0_Options_3.png" width="649" border="0" /&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4518199" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category></item><item><title>NCoverExplorer... v1.3.6</title><link>http://weblogs.asp.net/nunitaddin/archive/2007/04/06/ncoverexplorer-v1-3-6.aspx</link><pubDate>Fri, 06 Apr 2007 11:50:21 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2186930</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=2186930</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2007/04/06/ncoverexplorer-v1-3-6.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;Syndicated from &lt;a href="http://www.kiwidude.com/blog/index.html"&gt;Kiwidude's Geek Spot&lt;/a&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Some of you may already have noticed the long awaited release of &lt;a href="http://ncover.org/SITE/blogs/ncover_blog/archive/2007/04/04/1056.aspx"&gt;NCover 1.5.7&lt;/a&gt; yesterday - hoorah! That now being out of the way and in conjunction with some easing of my day job pressure, has made it a good time for me to finally rollout an NCoverExplorer update.&lt;/p&gt; &lt;p&gt;&lt;span style="font-weight: bold"&gt;Note&lt;/span&gt; - if you have downloaded NCoverExplorer or &lt;a href="http://testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; over the last week or so you may want to do so again. I have been sneaking in fixes for issues right up until this blog posting. Check the &lt;a href="http://www.kiwidude.com/dotnet/DownloadPage.html"&gt;downloads page&lt;/a&gt; to make sure you have the very latest build number.&lt;/p&gt; &lt;p&gt;This is predominantly a bug-fix release, addressing a range of issues that have accumulated over the last six months. Of utmost importance was &lt;span style="font-weight: bold"&gt;improving the coverage result accuracy&lt;/span&gt; from either the merging of multiple coverage.xml files or multiple AppDomains within a single file. Some of you have experienced issues with the "optimisations" of removing noop sequence points that NCover 1.5.4, 1.5.5 and 1.5.7 apply in different ways. This resulted in duplicated nodes in the treeview, or lower than expected coverage with brackets being shown as not hit etc. My thanks to everyone who contributed to the testing of this with their coverage files/repro projects and patience while I got the kinks out.&lt;/p&gt; &lt;p&gt;On the new feature front, the biggest is a "Find Type" dialog (ctrl+F) allowing you to navigate to types by entering their name (supports * for a wildcard).&lt;/p&gt; &lt;p&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center" alt="" src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.6_FindTypes.png" border="0"&gt; &lt;/p&gt; &lt;p&gt;A change to previous behaviour is to the &lt;span style="font-weight: bold"&gt;fail on minimum coverage&lt;/span&gt; option for NCoverExplorer.Console. Based on feedback this has now been changed so that &lt;span style="font-weight: bold"&gt;any&lt;/span&gt; assembly not reaching the threshold will cause the build to fail, rather than &lt;span style="font-weight: bold"&gt;total&lt;/span&gt; coverage.&lt;/p&gt; &lt;p&gt;All the other tweaks and fixes can be found in the &lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;release notes&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;I have updated the NCoverExplorer Extras download containing the NAnt and MSBuild tasks. The &lt;span style="font-weight: bold"&gt;&amp;lt;ncover&amp;gt;&lt;/span&gt; task now uses a reference counting style approach to the registration of coverlib.dll, which should get around issues reported on build servers of simultaneous build issues if you got unlucky with the timings.&lt;/p&gt; &lt;p&gt;The task now includes a &lt;span style="font-style: italic"&gt;registerProfiler&lt;/span&gt; optional attribute for those of you using TypeMock - you can set this to "false" to ensure the NCover task does not try to register CoverLib.dll itself.&lt;/p&gt; &lt;p&gt;There is an enhancement to the &lt;span style="font-weight: bold"&gt;&amp;lt;nunitproject&amp;gt;&lt;/span&gt; task to support the &lt;span style="font-style: italic"&gt;appbase&lt;/span&gt; property for people using multiple testing folders (thanks to Garth Williams).&lt;/p&gt; &lt;p&gt;Another addition is a new &lt;span style="font-weight: bold"&gt;&amp;lt;ndoc2&amp;gt;&lt;/span&gt; NAnt task in there for anyone using &lt;a href="http://www.kynosarges.de/NDoc.html"&gt;NDoc2 Alpha&lt;/a&gt; as I blogged about in &lt;a href="http://www.kiwidude.com/blog/2007/01/building-castles-on-quicksand.html"&gt;this post&lt;/a&gt;. Documentation is available via the links on this page but anyone familiar with the &amp;lt;ndoc&amp;gt; task should be happy. I've used it for generating CHM documentation without any problems.&lt;/p&gt; &lt;p&gt;For any issues with the release or further enhancement suggestions, please post to the &lt;a href="http://ncover.org/SITE/forums/default.aspx?GroupID=8"&gt;NCoverExplorer forums&lt;/a&gt; or send me an e-mail (Help -&amp;gt; Send Feedback).&lt;/p&gt; &lt;p&gt;A quick further mention on NCover 1.5.7. This is a &lt;span style="font-weight: bold"&gt;mandatory upgrade&lt;/span&gt; for every NCover user as far as I am concerned. Peter Waldschmidt's major rewrite of the profiler core and the addition of an integration test suite sets up a great platform for future releases. I've been fortunate to be able to chip in here and there on this release, although arguably more nuisance than help at times to Peter I'm sure!&lt;/p&gt; &lt;p&gt;I am highly optimistic however that this is the most solid NCover beta to date and was worth the wait to get it right. Top stuff Peter and many thanks for all the effort!&lt;/p&gt; &lt;p&gt;Last but certainly not least, &lt;a href="http://weblogs.asp.net/nunitaddin/"&gt;Jamie Cansdale&lt;/a&gt; has made available a new build of his excellent &lt;a href="http://testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; add-in. Amongst other goodies this now includes the latest build of NCoverExplorer, NCover 1.5.7 and Visual Studio Express SKU support. Right-clicky clicky goodness...&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/dotnet/DownloadPage.html"&gt;Downloads&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;Release Notes&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Filed in: &lt;span&gt;&lt;a href="http://del.icio.us/kiwidude/ncoverexplorer" rel="tag"&gt;ncoverexplorer&lt;/a&gt; &lt;a href="http://del.icio.us/kiwidude/ncover" rel="tag"&gt;ncover&lt;/a&gt; &lt;a href="http://del.icio.us/kiwidude/ndoc" rel="tag"&gt;ndoc&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2186930" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category></item><item><title>Testing With NCover/NCoverExplorer</title><link>http://weblogs.asp.net/nunitaddin/archive/2006/11/11/Testing-With-NCover_2F00_NCoverExplorer.aspx</link><pubDate>Sat, 11 Nov 2006 08:29:54 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:905590</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=905590</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2006/11/11/Testing-With-NCover_2F00_NCoverExplorer.aspx#comments</comments><description>&lt;p&gt;The following screencast &lt;a href="http://www.testdriven.net/screencasts/TestWithNCover.html"&gt;demonstrates&lt;/a&gt; how to achieve 100% coverage using &lt;a href="http://www.testdriven.net/"&gt;TestDriven.NET&lt;/a&gt; 2.0, &lt;a href="http://ncover.org/"&gt;NCover&lt;/a&gt; and &lt;a href="http://www.ncoverexplorer.org/"&gt;NCoverExplorer&lt;/a&gt;. &lt;a href="http://ncover.org/SITE/blogs/default.aspx"&gt;Peter Waldschmidt&lt;/a&gt; and &lt;a href="http://www.kiwidude.com/blog/"&gt;Grant Drake&lt;/a&gt; very kindly agreed to let me distribute NCover and NCoverExplorer with the &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2006/10/30/TestDriven.NET-2.0.aspx"&gt;RTM&lt;/a&gt; version of TestDriven.NET 2.0. This means that&amp;nbsp;once TestDriven.NET is installed, there is nothing more to configure. Code coverage with NCover can be used from &lt;em&gt;Visual Studio .NET&amp;nbsp;2002, 2003 &lt;/em&gt;or&lt;em&gt; 2005&lt;/em&gt;. It is &lt;em&gt;possible&lt;/em&gt; to use NCover if only .NET 1.1 is installed, however .NET 2.0 is recommended. If only .NET 1.1 is installed then NCover 1.3.3 will be used rather than the more mature NCover 1.5.6.&lt;/p&gt; &lt;p&gt;In the screencast I start off by showing how to zoom in on the partially covered regions of code. I then navigate back to Visual Studio and expand my unit test to cover all of the&amp;nbsp;partially covered method. Rather than create a unit test for the &lt;em&gt;ToString&lt;/em&gt; method, I decide to use the 'Coverage Exclude' feature&amp;nbsp;of NCover 1.5 (TestDriven.NET&amp;nbsp;uses "//ea CoverageExcludeAttribute" by default). I create a new &lt;em&gt;CoverageExcludeAttribute&lt;/em&gt; and use it on the &lt;em&gt;ToString&lt;/em&gt; method (extra assembly references are required).&amp;nbsp;This enables me to achieve 100% coverage with the excluded code grayed out and not counted in the final coverage score.&lt;/p&gt; &lt;p&gt;&lt;img height="200" src="http://www.mutantdesign.co.uk/weblog/images/TestingWithNCoverNCoverExplorer_777B/Coverage_thumb.gif" width="256"&gt;&amp;nbsp;&lt;img height="200" src="http://www.mutantdesign.co.uk/weblog/images/TestingWithNCoverNCoverExplorer_777B/Uncovered_thumb.gif" width="256"&gt; &lt;/p&gt; &lt;p&gt;&lt;img height="200" src="http://www.mutantdesign.co.uk/weblog/images/TestingWithNCoverNCoverExplorer_777B/EditInVS_thumb.gif" width="256"&gt; &lt;img height="200" src="http://www.mutantdesign.co.uk/weblog/images/TestingWithNCoverNCoverExplorer_777B/CoverageExclude_thumb.gif" width="256"&gt;&lt;/p&gt; &lt;p&gt;You can watch the&amp;nbsp;screencast &lt;a href="http://www.testdriven.net/screencasts/TestWithNCover.html"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;I'd like to thank &lt;a href="http://www.kiwidude.com/blog/"&gt;Grant Drake&lt;/a&gt; in particular for his support, generosity and convincing me that it was worth carrying on with the project.&amp;nbsp;:-)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=905590" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Code+Coverage/default.aspx">Code Coverage</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category></item><item><title>CoverageExclude</title><link>http://weblogs.asp.net/nunitaddin/archive/2006/10/04/CoverageExclude.aspx</link><pubDate>Wed, 04 Oct 2006 13:47:46 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:614266</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=614266</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2006/10/04/CoverageExclude.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.ericsink.com/"&gt;Eric Sink&lt;/a&gt; recently wrote an article, &lt;a href="http://www.ericsink.com/articles/Code_Coverage.html"&gt;advocating the use of code coverage&lt;/a&gt;. In the article Eric writes about a hobby project of his where he has managed to achieve 100% code coverage. The following may be of interest to anyone who finds themselves driven towards such ridiculous levels of coverage. ;)&lt;/p&gt; &lt;p&gt;When using NCover, particular methods and classes can be marked with an attribute so they are excluded from the coverage report. &lt;a href="http://www.testdriven.net/"&gt;TestDriven.NET&lt;/a&gt; tell &lt;a href="http://www.ncover.org/"&gt;NCover&lt;/a&gt; to use an attribute called 'CoverageExcludeAttribute' as this special attribute. When using the NCover console application, this option is:&lt;/p&gt;&lt;pre&gt;//ea CoverageExcludeAttribute&lt;/pre&gt;
&lt;p&gt;The 'CoverageExclude' attribute isn't defined in an external assembly. This is because 'CoverageExclude' is most likely to be used in non-test code. We don't want to create a dependency on another assembly (just as you wouldn't want to reference 'nunit.framework' from non-test code). Instead the 'ExcludeAttribute' can be defined in the empty namespace as follows:&lt;/p&gt;&lt;pre&gt;class CoverageExcludeAttribute : System.Attribute { }&lt;/pre&gt;
&lt;p&gt;Once defined this attribute can be used to exclude specific methods and classes from the &lt;a href="http://www.ncoverexplorer.org/"&gt;NCoverExplorer&lt;/a&gt; coverage report.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mutantdesign.co.uk/weblog/images/CoverageExclude_D00C/CoverageExcludeMethod26.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="254" src="http://www.mutantdesign.co.uk/weblog/images/CoverageExclude_D00C/CoverageExcludeMethod_thumb14.png" width="475" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mutantdesign.co.uk/weblog/images/CoverageExclude_D00C/CoverageExcludeTree2.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="186" src="http://www.mutantdesign.co.uk/weblog/images/CoverageExclude_D00C/CoverageExcludeTree_thumb.png" width="319" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=614266" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Code+Coverage/default.aspx">Code Coverage</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category></item><item><title>.Net 2.0 TreeView Performance is killing NCoverExplorer</title><link>http://weblogs.asp.net/nunitaddin/archive/2006/10/03/.Net-2.0-TreeView-Performance-is-killing-NCoverExplorer.aspx</link><pubDate>Tue, 03 Oct 2006 10:37:30 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:608337</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=608337</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2006/10/03/.Net-2.0-TreeView-Performance-is-killing-NCoverExplorer.aspx#comments</comments><description>&lt;p&gt;If you are familiar with the Windows Forms TreeView control, please take a look at &lt;a href="http://www.kiwidude.com/blog/"&gt;Grant Drake&lt;/a&gt;'s &lt;a href="http://www.kiwidude.com/blog/2006/09/net-20-treeview-performance-problem.html"&gt;post&lt;/a&gt; on performance issues under&amp;nbsp;.NET 2.0. You will find example code and a graph comparing its performance under .NET 1.1 and .NET 2.0.&lt;/p&gt; &lt;p&gt;It is upsetting to see the otherwise snappy &lt;a href="http://del.icio.us/kiwidude/ncoverexplorer"&gt;NCoverExplorer&lt;/a&gt; turn into treacle when only .NET 2.0 is loaded (.NET 1.1 has precedence in the 'App.config' file). If you can find a solution, &lt;em&gt;please&lt;/em&gt; let Grant &lt;a href="http://www.blogger.com/comment.g?blogID=21622397&amp;amp;postID=115887608541619536"&gt;know&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=608337" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/.NET/default.aspx">.NET</category></item><item><title> NCoverExplorer... v1.3.4</title><link>http://weblogs.asp.net/nunitaddin/archive/2006/07/18/458798.aspx</link><pubDate>Tue, 18 Jul 2006 06:57:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:458798</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=458798</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2006/07/18/458798.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;Syndicated from &lt;a href="http://www.kiwidude.com/blog/"&gt;Kiwidude&amp;#39;s Geek Spot&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It&amp;#39;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.&lt;/p&gt;
&lt;p&gt;Firstly the new features:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;On the toolbar of the NCoverExplorer GUI you will find four new buttons for &lt;span style="font-weight: bold"&gt;navigating unvisited lines and classes&lt;/span&gt;.
These have shortcut keys of &amp;#39;N&amp;#39;/&amp;#39;P&amp;#39; (or forward/back mouse buttons) for
the next/previous unvisited line in the current class. Use
&amp;#39;Ctrl+N&amp;#39;/&amp;#39;Ctrl+P&amp;#39; for next/previous unvisited class in this namespace
(or Ctrl + forward/back mouse buttons). Thanks &lt;a href="http://weblogs.asp.net/nunitaddin/"&gt;Jamie&lt;/a&gt; for the mouse button suggestion, it rocks!&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.4_Navigation-735827.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer" src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.4_Navigation-731465.png" border="0" alt="" /&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;You can use &lt;span style="font-weight: bold"&gt;NCoverExplorer.Console.exe to merge and save&lt;/span&gt;
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:
&lt;pre&gt;ncoverexplorer.console.exe *.ncover.xml /s:coverage.merged.xml&lt;/pre&gt;

&lt;p&gt;If using the NAnt or MSBuild tasks from the latest NCoverExplorer.Extras.zip, you can add a new attribute &amp;quot;&lt;span style="color: #ff0000"&gt;mergeFileName&lt;/span&gt;&amp;quot; (NAnt) or &amp;quot;&lt;span style="color: #ff0000"&gt;MergeFileName&lt;/span&gt;&amp;quot; (MSBuild) containing the filename for the results.&lt;/p&gt;

&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold"&gt;Module level coverage thresholds&lt;/span&gt;
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 &amp;quot;failure&amp;quot;
forever on coverage reports.
&lt;p&gt;For NAnt, add this section within your &lt;span style="color: #990000"&gt;ncoverexplorer&lt;/span&gt; task:&lt;/p&gt;

&lt;pre&gt;&amp;lt;ncoverexplorer ...&lt;br /&gt;    &amp;lt;moduleThresholds&amp;gt;&lt;br /&gt;        &amp;lt;moduleThreshold moduleName=&amp;quot;MyAssembly1.dll&amp;quot; satisfactoryCoverage=&amp;quot;30&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;moduleThreshold moduleName=&amp;quot;MyAssembly2.dll&amp;quot; satisfactoryCoverage=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/moduleThresholds&amp;gt;&lt;br /&gt;&amp;lt;ncoverexplorer&amp;gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;For MSBuild, you can add this attribute to the &lt;span style="color: #990000"&gt;NCoverExplorer&lt;/span&gt; task:&lt;/p&gt;

&lt;pre&gt;&amp;lt;NCoverExplorer ...&lt;br /&gt;     ModuleThresholds=&amp;quot;MyAssembly1.dll=30;MyAssembly1.dll=80&amp;quot; /&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;For complete examples refer to &amp;quot;example.build&amp;quot; and &amp;quot;example.proj&amp;quot;
within the NCoverExplorer.Extras.zip 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 &lt;span style="color: #990000"&gt;ncoverexplorer&lt;/span&gt; task above - see the ConsoleExample.config file in your NCoverExplorer folder.
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;There is a &lt;span style="font-weight: bold"&gt;new code coverage report&lt;/span&gt;, which drills down to classes per namespace per module. This is my &amp;quot;favourite&amp;quot; report we use on our &lt;a href="http://ccnet.thoughtworks.com/"&gt;CruiseControl.Net&lt;/a&gt; build servers. To generate this report the magic number is &lt;span style="font-weight: bold"&gt;&amp;quot;4&amp;quot;&lt;/span&gt; for your report type attribute in the command line, NAnt and MSBuild tasks.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.4_ClassReport-788212.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer" src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.4_ClassReport-783455.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Updates to the &lt;span style="font-weight: bold"&gt;CruiseControl.Net build summary stylesheet&lt;/span&gt;,
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
NCoverExplorer.Extras.zip for details.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.4_BuildSummary-721378.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer" src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.4_BuildSummary-718234.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Added the ability to &lt;span style="font-weight: bold"&gt;change source code paths&lt;/span&gt;
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 folder location to find the source code files in.&lt;/li&gt;&lt;/ul&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center" src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.4_ResolveMissing-741627.png" border="0" alt="" /&gt;
&lt;p&gt;In terms of bug fixes, the most important that &lt;a href="http://www.kiwidude.com/blog/2006/07/ncoverexplorer-merging-coverage-files.html"&gt;I blogged about recently&lt;/a&gt;
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 &lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;release notes&lt;/a&gt; for full details.&lt;/p&gt;

&lt;p&gt;As always, please drop me an e-mail through Help-&amp;gt;Send Feedback if you have found any bugs or suggestions.&lt;/p&gt;

&lt;p&gt;One final point - no doubt most people reading this have heard about &lt;a href="http://weblogs.asp.net/nunitaddin/"&gt;Jamie Cansdale&lt;/a&gt; &amp;quot;&lt;a href="http://weblogs.asp.net/nunitaddin/archive/2006/07/10/EnterpriseAndProfessional.aspx"&gt;going commercial&lt;/a&gt;&amp;quot; with &lt;a href="http://testdriven.net/"&gt;TestDriven.Net&lt;/a&gt;.
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 &amp;quot;for
free&amp;quot;. 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 &amp;quot;life&amp;quot; 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 &amp;quot;out of the box&amp;quot; tools to make
for a far more productive development experience.&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.testdriven.net/Default.aspx?tabid=27"&gt;Download TestDriven.Net 2.0 combined install&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorer.zip"&gt;Download NCoverExplorer 1.3.4 binaries&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorer.Extras.zip"&gt;Download NCoverExplorer.Extras.zip (CC.Net/NAnt/MSBuild) &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;Release Notes&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerFAQ.html"&gt;FAQ&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=458798" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Code+Coverage/default.aspx">Code Coverage</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category></item><item><title>NCoverExplorer... v1.3.3</title><link>http://weblogs.asp.net/nunitaddin/archive/2006/04/12/442677.aspx</link><pubDate>Wed, 12 Apr 2006 17:37:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:442677</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=442677</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2006/04/12/442677.aspx#comments</comments><description>&lt;p&gt;&lt;i&gt;Syndicated from &lt;a href="http://www.kiwidude.com/blog/"&gt;Kiwidude's Geek Spot&lt;/a&gt;&lt;/i&gt;&lt;/p&gt; &lt;p&gt;Another stack of new features in the latest generation of NCoverExplorer. I've added summary html/xml reporting, filtering capabilities, basic code metrics and very significantly a console version for automated build usage.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Html reporting&lt;/strong&gt; as I posted about &lt;a href="http://www.kiwidude.com/blog/2006/03/html-coverage-reporting.html"&gt;here&lt;/a&gt; has been requested by a number of users, including myself! For this release I have implemented summary reports since from the feedback I received they were of most interest. From either the GUI or the the console application you can now generate one of three reports: &lt;ul&gt; &lt;li&gt;Module Summary&lt;/li&gt; &lt;li&gt;Namespace Summary&lt;/li&gt; &lt;li&gt;Module and Namespace Summary &lt;/li&gt;&lt;/ul&gt;As you can see from this dialog you have a choice of output either directly to html or to xml (the latter having an associated stylesheet for rendering html). &lt;p&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_ReportsDialog-745118.png" /&gt;&lt;/p&gt; &lt;p&gt;An example of the module summary report is shown here. Note the inclusion of some basic statistics at the top right. You can also see that our "satisfactory coverage threshold" is displayed at the top (90%) and that any graph bars exceeding this threshold (but not 100%) have the uncovered code shown in yellow. So a glance at the report for the red bars will tell you which modules or namespaces are possibly in need of investigation.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_ReportSummary-796404.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_ReportSummary-792918.png" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt; are also available within the NCoverExplorer GUI. Note that these are derived from the NCover coverage report, not the source code. The totals deliberately ignore any "excluded" code.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_Statistics-769872.png" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Filtering &lt;/span&gt;offers a way of simplifying down the coverage tree without affecting the coverage totals (unlike "excluding" which recalculates the totals). There are two filters available - hiding all 100% covered nodes (for when you want to focus on the todo list), and hiding all 0%/unvisited nodes (for when unit testing isolated functionality).&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_FilterMenu-778652.png" /&gt;&lt;/p&gt; &lt;p&gt;My thanks to &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Lutz Roeder&lt;/a&gt; for the public donation of his excellent CommandBar code. You can see the impact in this in the new look to the menus with images and the new &lt;strong&gt;Toolbar&lt;/strong&gt; shown below.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_Toolbar-789656.png" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Including &lt;/span&gt;nodes that were marked as "excluded" is also now possible. You can think of this as an "undo" feature to override either manual exclusions or those defined in the options dialog. Including a node will also recalculate the related coverage statistics.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_Console-789446.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_Console-779412.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;NCoverExplorer.Console&lt;/strong&gt; came about from two features on my list. One of these from Matt Hargett of &lt;a href="http://www.imeem.com/"&gt;imeem.com&lt;/a&gt; was to enable failing a build if coverage does not meet a particular threshold.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_ConsoleFail-768275.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_ConsoleFail-753558.png" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The second item was the ability to produce xml and html coverage summary reports in an automated fashion. As anyone who has used &lt;a href="http://ncover.org/"&gt;NCover&lt;/a&gt; on large projects will testify, coverage.xml files can be very large. Rendering these using xsl while being an elegant and flexible solution is just way too slow, particularly when the coverage file is many megabytes. Merging the coverage.xml file(s) into your &lt;a href="http://confluence.public.thoughtworks.org/display/CCNET"&gt;CruiseControl.Net&lt;/a&gt; buildlog.xml files also slows down the rendering of every single page for that build on the CCNet web server.&lt;/p&gt; &lt;p&gt;My solution to this is based on the assumption that I do not want to see line level coverage information on the build server. I just want to see a summary of the project, modules and perhaps down to namespace level of coverage. By adding NCoverExplorer.Console.exe to the build pipeline we can transform the NCover results very quickly into a tiny summary xml file. With the appropriate stylesheets we can now render coverage summary reports in CCNet in a fraction of the time previously taken.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_CCNetReports-729240.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_CCNetReports-708854.png" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;All of the options available in the GUI in terms of exclusions, thresholds, project name, output as xml and/or html are available.&lt;/p&gt; &lt;p&gt;I have also developed an additional stylesheet for use on the Build Report page of CCNet as shown below:&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_CCNetBuildReport-755060.png" /&gt;&lt;/p&gt; &lt;p align="left"&gt;Since these are just stylesheets transforming the NCoverExplorer xml file they can be customised to your own tastes if required.&lt;/p&gt; &lt;p&gt;The final piece of the puzzle is to automate through &lt;strong&gt;NAnt&lt;/strong&gt; and &lt;strong&gt;MSBuild&lt;/strong&gt; the creation of the xml/html reports. You can of course just use an &amp;lt;exec&amp;gt; task, however I have put together some custom tasks for both tools which offer a bit more flexibility. These are available for download in the NCoverExplorer.Extras zip file at the bottom of this post along with some included examples and the necessary stylesheets for CruiseControl.Net.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_NAnt-704144.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.3_NAnt-799968.png" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If anyone requires it I may put up a blog entry walking through such configuration or perhaps see about getting it documented on the CruiseControl.Net wiki. It is fairly straightforward though:&lt;/p&gt; &lt;p&gt; &lt;ol&gt; &lt;li&gt;Copy the NCoverExplorer.xsl and NCoverExplorerSummary.xsl stylsheets from the NCoverExplorer.Extras zip file to your CruiseControl.Net\webdashboard\xsl folder&lt;/li&gt; &lt;li&gt;Edit your CruiseControl.Net\webdashboard\dashboard.config file to point to these stylesheets. I have included an example dashboard.config in the .zip&lt;/li&gt; &lt;li&gt;Modify your NAnt or MSBuild script. As stated you can either execute the console application directly with command line arguments or use my custom tasks. For instance to use the custom NAnt task copy NAnt.NCoverExplorer.Tasks.dll to your NAnt\bin\Tasks\net folder and follow the example syntax contained within "example.build".&lt;/li&gt; &lt;li&gt;Modify your CruiseControl.Net project file (ccnet.config) to use the merge publisher to include the xml output from NCoverExplorer.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;For my own sanity, other than any bug-fixes I am intending to put a hold on further development for a little while. This has consumed every evening and weekend for the last couple of months so it's time for a break. Any &lt;a href="http://www.kiwidude.com/blog/PaypalPaymentPage.html"&gt;donations&lt;/a&gt; could of course help rekindle my interest ;-)&lt;/p&gt; &lt;p&gt;As always I welcome any feedback. Enjoy! &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.testdriven.net/Default.aspx?tabid=27"&gt;Download TestDriven.Net 2.0.1578 combined install&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorer.zip"&gt;Download NCoverExplorer 1.3.3 binaries&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.forty-two.co.nz/NCoverExplorer.zip"&gt;Mirror Site&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorer.Extras.zip"&gt;Download NCoverExplorer.Extras.zip (CC.Net/NAnt/MSBuild)&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;Release Notes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerFAQ.html"&gt;FAQ&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerFAQ.html"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=442677" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category></item><item><title>NCoverExplorer... v1.3.2</title><link>http://weblogs.asp.net/nunitaddin/archive/2006/03/15/440266.aspx</link><pubDate>Wed, 15 Mar 2006 11:35:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:440266</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=440266</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2006/03/15/440266.aspx#comments</comments><description>&lt;p&gt;&lt;i&gt;Syndicated from &lt;a href="http://www.kiwidude.com/blog/"&gt;Kiwidude's Geek Spot&lt;/a&gt;&lt;/i&gt;&lt;/p&gt; &lt;p&gt;Plenty of "must have" features that have been on people's wish lists in this release and a couple of irritating bugs fixed so I can't recommend highly enough that people upgrade. Download details at the bottom of the post.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Merging coverage files&lt;/strong&gt; is the first of the "killer" features, offering improved integration with &lt;A href="http://weblogs.asp.net/nunitaddin"&gt;TestDriven.Net&lt;/a&gt;. Some of you may have noticed the inability to produce coverage results across a VS.Net solution or with multiple fixtures selected in the solution explorer window. The &lt;a href="http://www.testdriven.net/Default.aspx?tabid=27"&gt;latest release&lt;/a&gt; of TestDriven.Net now supplies multiple coverage file names to NCoverExplorer which will merge and present the consolidated results. You can also manually merge multiple coverage files within NCoverExplorer via a number of ways, such as a "File-&amp;gt;Merge" menu option or drag/drop.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Saving&lt;/strong&gt; of the consolidated coverage results is now possible using the new "File-&amp;gt;Save/Save As" options. Note that saving will remove any excluded nodes (see below) and merges together any duplicated visit count sections from the new coverage.xml file. This means you will likely find the resulting file much smaller than the originals.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_Exclusions-769834.png"&gt; &lt;p&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_Exclusions-763155.png" /&gt;&lt;/p&gt;&lt;/a&gt;&lt;strong&gt;Coverage exclusions&lt;/strong&gt; are my personal favourite new feature. This offers a way for NCoverExplorer to automatically remove from the coverage tree items not relevant to your analysis when a coverage file is loaded - such as unit test fixtures, third party libraries etc. In the screenshot shown you can see the default exclusions I have included with NCoverExplorer - for instance any assemblies ending in ".Tests" will be excluded. You can add exclusions at the class, assembly and namespace level. I have also added support for the &lt;a href="http://ncover.org/"&gt;NCover&lt;/a&gt; 1.5.x feature of "exclusion attributes" if they exist in the coverage.xml file (although NCover still has some &lt;a href="http://ncover.org/SITE/forums/thread/247.aspx"&gt;kinks&lt;/a&gt; to be worked out in a future release before you can rely on this feature). &lt;/p&gt;&lt;p&gt;&lt;/p&gt; &lt;p&gt;All excluded items are then added to a special &lt;strong&gt;Excluded bin&lt;/strong&gt; for the parent node as shown in the screenshot below. The source code for excluded methods will be highlighted in grey. You can also manually exclude items on the fly via a right-click "Exclude from Results" menu which replaces the previous "Remove from Results" option.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Source code tabs&lt;/strong&gt; started out as a solution to a problem a few users reported with highlighting, particularly to do with &lt;a href="http://www.kiwidude.com/blog/2006/03/ncoverexplorer-partial-classes-grief.html"&gt;partial classes&lt;/a&gt;. I believe I have resolved this once and for all now with the introduction of this feature. If you click on a partial class in the coverage tree, a tab is opened for every source code file making up that class with all the code highlighted as shown here.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_PartialClasses-738092.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_PartialClasses-738092.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The tabs also offer a way of quickly navigating around the coverage tree as selecting a tab will select the corresponding class node.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_Themes-758888.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_Themes-758888.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Themes&lt;/strong&gt; came about as an answer to another much requested feature of more customisation of the GUI to include fonts and background colours. A "theme" is a group of settings covering most aspects of the appearance of the coverage tree, statistics pane and source code highlighting.&lt;/p&gt; &lt;p&gt;You can of course add your own themes as shown in the screenshots on this blog entry. Themes are easily toggled between using the new View-&amp;gt;Themes menu.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_FunctionCoverage-700980.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_FunctionCoverage-700980.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sorting&lt;/strong&gt; and &lt;strong&gt;Coverage&lt;/strong&gt; options came from a couple of user feature requests as shown here.&lt;/p&gt; &lt;p&gt;These allow NCoverExplorer to display function coverage or focus on methods with the most unvisited code.&lt;/p&gt; &lt;p&gt;My thanks to Trevor Hall for his time taken to suggest and test not only these features but also a number of others slated for a future release (after I take a break!).&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_Sorting-794566.png"&gt;&lt;img alt="" src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.2_Sorting-794566.png" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Thanks also to Jamie and others who have been kind enough to test the beta versions and provide invaluable feedback.&lt;/p&gt; &lt;p&gt;There are numerous other minor usability tweaks and enhancements I haven't mentioned here that you can read about in the release notes or discover for yourselves. I look forward to any feedback!&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.testdriven.net/Default.aspx?tabid=27"&gt;Download TestDriven.Net 2.0.1545 Combined Install&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorer.zip"&gt;Download NCoverExplorer 1.3.2 binaries&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.forty-two.co.nz/NCoverExplorer.zip"&gt;Mirror Site&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;Release Notes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerFAQ.html"&gt;FAQ&lt;/a&gt; &lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=440266" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category></item><item><title> NCoverExplorer... v1.3.1</title><link>http://weblogs.asp.net/nunitaddin/archive/2006/02/16/438418.aspx</link><pubDate>Thu, 16 Feb 2006 21:24:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:438418</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=438418</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2006/02/16/438418.aspx#comments</comments><description>&lt;p&gt;&lt;i&gt;Syndicated from &lt;a href="http://www.kiwidude.com/blog/"&gt;Kiwidude's Geek Spot&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;A ton of new features in the latest release, and a few bugs fixed ranging from minor annoyance (code highlighting) to downright critical for some (supporting .Net 2.0 features like partial classes and generics - thanks to &lt;a href="../"&gt;Jamie Cansdale&lt;/a&gt; &amp;amp; Andreas Hofer in particular for pointing out the issues!).&lt;/p&gt;&lt;p&gt;As per usual you can download this version with the just released build (2.0.1435) of &lt;a href="http://testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; or as a standalone product via the links at the bottom of this post.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What's New?&lt;/strong&gt; Loads... more than I'm going to mention here (see the &lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;release notes&lt;/a&gt; for the full list). Let's look at the options dialog:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_OptionsTab1-775884.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_OptionsTab1-772363.png" /&gt;&lt;/a&gt;&lt;br /&gt;Apart from the new tabbed appearance there are some other new options to note here:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Namespaces will now be "flattened" by default which is the same appearance as Reflector or the VS.Net 2005 class viewer (see screenshot below).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the VB.Net crowd out there you can now exclude the "My" namespace by default which NCover includes in the results, distorting your coverage percentages.&lt;/li&gt;&lt;li&gt;An optional threshold for the number of unvisited lines in a method. Acts in a similar way to the existing % threshold feature but just another way of convincing yourself things aren't as bad as they may first seem...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Probably the most requested feature I have had is the ability to customise the colours - so here you go! There is more to come in the future on this but for now you can change:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_OptionsTab2-767371.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_OptionsTab2-762897.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Moving onto the display itself, you can see some new menu options in the tree view and the default view of a "Flat" namespace hierarchy below:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_Namespaces-758949.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_Namespaces-755088.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The two new right-click menu options are:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Remove from results - does what it says on the tin. This option is context aware so you can use it to "prune" your coverage tree - be it to remove a unit test assembly as shown above or exclude a class. After the remove action is selected NCoverExplorer recalculates the percentages in the tree.&lt;/li&gt;&lt;li&gt;Collapse All - collapses every single coverage node in the tree.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Next is the statistics pane. This has had quite a revamp (my thanks to Andrzej Kaczmarczyk for his suggestions). Clicking on a class node now produces a summary of all the methods and the number of times they were executed (shown below). The columns are now sortable as well. This offers a rudimentary form of code profiling analysis.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_ClassStats2-750951.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_ClassStats2-747451.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Clicking on a method node is also slightly tweaked to show the method name.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_MethodStats-729784.png"&gt;&lt;img src="http://www.kiwidude.com/blog/uploaded_images/NCoverExplorer_1.3.1_MethodStats-724733.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The final new feature I think worth highlighting is that by default NCoverExplorer now tries to restore your cursor position / current selected node when reloading a coverage file. So when used in conjunction with the superb &lt;a href="http://testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; "Test With... Coverage" feature you no longer need to keep re-expanding the nodes to get to where you last were...&lt;/p&gt;&lt;p&gt;I look forward to your &lt;a href="http://try4.fogbugz.com/default.asp?pg=pgPublicEdit&amp;id=58973YPDPJE"&gt;feedback&lt;/a&gt; with any additional suggestions, comments... or even dare I suggest new bugs! This release has made quite a dent in the features todo list but there's still a number of things on it yet...&lt;/p&gt;&lt;p&gt;Also very much worth noting - the latest &lt;a href="http://ncover.org/"&gt;NCover&lt;/a&gt; beta release 1.5.3 is now &lt;a href="http://ncover.org/SITE/blogs/ncover_blog/archive/2006/02/14/176.aspx"&gt;available&lt;/a&gt; - highly recommended for the bug fixes alone. Thanks Peter!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorer.zip"&gt;Download NCoverExplorer 1.3.1 binaries&lt;/a&gt; (203KB)&lt;br /&gt;&lt;a href="http://www.forty-two.co.nz/NCoverExplorer.zip"&gt;Mirror Site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html"&gt;Release Notes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.kiwidude.com/dotnet/NCoverExplorerFAQ.html"&gt;FAQ&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=438418" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category></item></channel></rss>