exec is enough to make me think this is a bad idea. And there are other reasons why this wouldn't really address the "problem".
Instead write Test::AutoPlan that you use like:
perl -MTest::AutoPlan -e0 t/*
and it would run each of your t/* files and then modify them to record the current plan count, notifying you how the counts had changed.
Instead of writing your t/* files like:
use Test::More ( ... );
...
you'd write them like:
use Test::AutoPlan qw( Test::More ... );
...
and perl -MTest::AutoPlan t/* would change that to
use Test::AutoPlan 23 qw( Test::More ... );
...
and you could even make it so "make plan" updates the test count plans.
The Test::AutoPlan code goes something like this:
my $plan;
sub VERSION {
$plan = $_[1];
}
sub import {
my $self = shift(@_);
goto &UpdateTests if ! @_;
my $module = shift(@_);
my @plan = "no_plan";
if( defined($plan) ) {
@plan = ( tests => $plan );
} elsif( "Test::Simple" eq $module ) {
@plan = ( tests => 0 );
}
unshift @_, $module, @plan;
my $import = $module . "::import";
undef $plan;
goto &$import;
}
sub UpdateTests {
for my $test ( @ARGV ) {
my $plan = RunTestsAndCount( $test );
@ARGV = $test;
$^I = ".old";
while( <> ) {
s{
^(
[\w\s]*
(?<![\w:])
Test::AutoPlan
)
(\s+\d+)?
}{
$1 . " " . $plan
}ex;
print;
}
}
}
The first argument could be Test::Simple instead of Test::More (or whatever other modules you decide to support).
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.