We all love Devel::Cover, the wonderful code coverage tool by Paul Johnson. But as you might have experienced, generating coverage reports for a big test suite can take quite a time (about an hour in the case of our current project). And each new run overwrites the previous one, which (besides being a big waste of used CPU cycles) makes it hard to see any progress, lack thereof, or, even worse, regress.
So I recently wrote a hackish script to save those precious coverage reports to somewhere safe. And a few days later, I converted the hackish script to a slightly less hackish module, which I now proudly present to you:
It's basically just a bunch of slightly enhanced
copy statements, but it's a clear case of "automate easy things that you do often". After running your test suite with
Devel::Cover, you can do:
~/Your-Project$ archive_devel_cover --from cover_db/ --to /var/www/coverage_reports/your_project/
App::ArchiveDevelCover will not only save your most recent report to the specified location, but will also generate a nice-looking overview page reporting the status of each report, and informing you of the coverage trend (see the screenshot to your right...).