Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I force Perl Devel::Cover to generate a coverage report if I killed the build testcover process before it was finished?

If I am able to start up Devel::Cover successfully and it starts to collect data in the cover_db directory, can I then kill the process and then after the fact get Devel::Cover or some other utility to process those binary Devel::Cover run files and structure files into the HTML coverage report?

To ask the question another way ... Can I use Devel::Cover to get a coverage report for a process that I am unable to stop, other than by killing the process?

This question is related to: How do I get code coverage of Perl CGI script when executed by Selenium?

like image 708
Kurt W. Leucht Avatar asked Oct 14 '22 05:10

Kurt W. Leucht


1 Answers

The way I usually handle this (say, for running tests on servers) is:

  • Generate a __DIE__ handler for the Perl process. This ensures that the process completes normally and Devel::Cover finishes the DB population

  • Send SIGINT to the process to trigger the new DIE handler.

  • run cover program on the cover_db directory after the process is dead.

like image 145
DVK Avatar answered Oct 18 '22 03:10

DVK