This post is part of a series chronicling my search for a .NET coverage tool.
Today I'm looking at my second candidate: PartCover.
PartCover has a GUI runner as well as a command-line mode. It integrates with Isolator, but doesn't offer any help for those wanting to profile IIS-hosted applications. There are some XSL files provided that allow one to generate HTML reports, but probably the better way is to use ReportGenerator to make HTML or XML reports. PartCover claims to be auto-deployable, but I did not try this.
The hardest thing about working with PartCover is learning about PartCover - finding definitive information about the project's state is quite difficult. Searching with Google finds the SourceForge project which contains a note to see latest news on the PartCover blog, which hasn't been updated since 17 June 2009. Back at SourceForge, you can download a readme written by Shaun Wilde, which says that he's the last active developer and has moved development to a GitHub project.
At last! A project with recent (26 June 2011) updates. Unfortunately, my trials did not end here. I tried a number of versions, each with their own quirks. Unfortunately, I did not keep as careful track of which version had which problem as I should, and can't say which version (from either GitHub or SourceForge) had which problems, but I can describe the problems.
At first I thought things were working really well, but then noticed that I had abnormally high coverage levels on my projects - one legacy project that I knew had about 5% coverage was registering as over 20%! I looked at one assembly's summary and found 6 classes with 0% coverage and one with 80%, and the assembly was registering an 80%. It turns out that completely uncovered classes were not counting against the total.
I tried other versions, with either the same results, or failures to run altogether. Ultimately, I gave up.
It turns out that PartCover has a successor of sorts - Shaun Wilde, the last surviving maintainer of PartCover, has started his own coverage tool - OpenCover. It already seems be a viable PartCover replacement, and is in active development, so I'll be checking it out as a free, non-IDE-integrated coverage tool.
- XML/HTML via ReportGenerator
- report merging via ReportGenerator
- Isolator support
- auto-deployable (reported)
- sequence point coverage
- no IDE integration
- no special IIS support
- forked implementations, each with their own warts
- not quite abandoned, but not a lot of interest behind the project
Until I noticed the high coverage levels, I didn't mind PartCover. I figured its lack of price and its Isolator support made it a viable candidate. Unfortunately, the high coverage reports and other problems soured me on the deal, as did the lack of maintenance. I'm going to look at OpenCover instead.