So often you open up a test suite and see 20 test programs starting with something like this:
use Test::More tests => 23; use Test::Differences; use Test::Exception;
That's awfully repetitive and if you have a standard set of testing tools, that gets annoying. Instead, I'd like to do something like this:
use My::Tests tests => 20;That would incorporate all of the above and look like this:
package My::Tests; use Test::Custom qw( Test::More Test::Differences Test::Exception ); 1;
Of course, you'd have to have importing facilities and "conditional" loading:
package My::Tests; use Test::Custom qw( Test::More Test::Differences ), 'Test::SomethingOrOther' => [ 'bulges_ok' ]; Test::Custom->add('Test::NoWarnings') if $some_condition; 1;
The question I'm trying to figure out is the best way to implement this. I could have Test::Custom (better names welcome) build something like this:
eval <<"END"; package $calling_package; use Test::More @test_more_imports; use Test::Exception @test_exception_imports; use Test::Differences @test_differences_imports; END if ( my $error = $@ ) { ... }
However, I just *know* there are problems with this, but I can't think for the life of me what they might be. Does that seem sane to folks? Am I overlooking something blindingly obvious?
Cheers,
Ovid
New address of my CGI Course.
In reply to Best Way to Make a Custom Testing Module by Ovid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |