I've written a module for internal use at work and am trying to add a test suite for the primary script which uses the module. I have good coverage analysis test results for the module itself.

To do this, I added a few tests in the t/ subdir that run the script via system() and capture the output. These mostly test for expected exit status and output based on various options and input files. These get run several times with the system call looking something like this:

if (exists($INC{'Devel/Cover.pm'})) {
$rc = system("perl", "-MDevel::Cover", "blib/script/fvdcs-sweep.pl bogus.file");
} else {
$rc = system("perl", "-MDevel::Cover", "blib/script/fvdcs-sweep.pl bogus.file");
}
isnt($rc, 0, "Missing/non-existent file exits with error");

After adding more tests, I noticed that the coverage analysis wasn't really making sense; tests which I *knew* were tripping certain lines of code still had those lines of code marked as uncovered.

Finally, I resorted to running a couple by hand from the command prompt. If I run a test which has high coverage followed by one which has lower (but different) coverage, I end up with a final report that shows only the lower coverage. After reading the man page, I changed "-MDevel::Cover" to "-MDevel::Cover=-merge" but that has no effect.

Version info:
736 roland> rpm -q perl-Devel-Cover
perl-Devel-Cover-0.64-2.fc11.i586
737 roland> rpm -q perl
perl-5.10.0-82.fc11.i586

Is this supposed to work, or am I misreading the documentation?

roland

--
                       PGP Key ID: 66 BC 3B CD
Roland B. Roberts, PhD                             RL Enterprises
rol...@rlenter.com                            6818 Madeline Court
rol...@astrofoto.org                           Brooklyn, NY 11220

Reply via email to