CC: | paul [...] pjcj.net |
Subject: | Request inclusion of branch and condition coverage in archive reports |
Domm,
Sitting here at the 2013 Perl QA Hackathon in Lancaster. Sitting across from pjcj. Talking about how to improve cpancover.pm and how to obtain and report coverage of the Perl 5 core distribution.
Which led me to (finally!) install App-ArchiveDevelCover, about which I hears you speak at the DC-Baltimore Perl Workshop last April (and where I'm speaking next weekend).
So I gave archive_devel_cover.pl a whirl. Two points:
1. It would be good to include in the documentation a reminder that you must do 'cover -delete' between runs of Devel::Cover and archive_devel_cover.pl. Otherwise, the latter program says, "This coverage report has already been archived."
2. More importantly, archive_devel_cover.pl appears to be hard-wired to report only statement, sub and total percentages. It omits branch and condition coverage -- which I rely heavily on -- as well as Pod and time coverage -- which I personally don't use.
It would really be good to allow the user the same flexibility with respect to the types of coverage archived that she has when using Devel::Cover itself. If, however, that is not feasible, then the archive_devel_cover.pl should report all the types of coverage that the user requested when running Devel::Cover over the code base.
See, for example: http://thenceforward.net/Data-Dumper/archive/, where I tried out archive_devel_cover.pl for the very first time.
Why would this be valuable? Two reasons:
a. When I'm trying to boost the coverage of a module, the last, most difficult steps are the tests I write to boost branch and condition coverage. Right now, when I do a new Devel::Cover run, I have to look at my web site to see the totals for the *previous* cover run, then refresh the browser to see the improvements from the *latest* run. In the later stages of a coverage-improvement project, I've often got all the statement coverage I can possibly get on a given OS, so what I'm looking for are incremental improvements in branch and condition coverage.
b. Here at the hackathon we are discussing how to report test coverage of the Perl 5 core distribution on an ongoing basis. That would include 'gcov' running on the C code and Devel::Cover running on all the Perl modules in cpan/, dist/, ext/, lib/, etc. We'll certainly be able to get branch and condition coverage on all the .pm files using Devel::Cover, but it would be very useful as well to be able to track changes in those coverage categories between monthly releases of, say, Perl 5.19.
So, can you give us an idea as to whether archiving of branch and condition coverage is feasible and might be forthcoming?
Thank you very much.
Jim Keenan