in reply to How can I write Test::Finished?
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).
- tye
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How can I write Test::Finished? (auto count)
by samtregar (Abbot) on Jun 21, 2004 at 21:27 UTC | |
by tye (Sage) on Jun 21, 2004 at 22:19 UTC | |
by samtregar (Abbot) on Jun 22, 2004 at 01:02 UTC | |
by tye (Sage) on Jun 22, 2004 at 06:30 UTC | |
by samtregar (Abbot) on Jun 22, 2004 at 15:00 UTC | |
| |
|
Re^2: How can I write Test::Finished? (auto count)
by dragonchild (Archbishop) on Jun 21, 2004 at 19:52 UTC |