[Bioperl-l] New testing base: BioperlTest.pm
Hilmar Lapp
hlapp at gmx.net
Wed Jun 20 16:27:47 UTC 2007
Very cool! Sounds like a no-brainer to me to adopt this in all the
tests. -hilmar
On Jun 20, 2007, at 11:38 AM, Sendu Bala wrote:
> In considering updating all the test scripts to take advantage of the
> new network option, and/or reimplementing them in Test::More, I
> thought
> now would be a good time to standardize all the test scripts and
> reduce
> the possibility of having to alter them all in the future if something
> changes.
>
> For example we could decide on an alternate way of choosing to run
> network tests, or a new way of deciding to output debug information.
> There are also some inconsistencies in the messages produced by tests
> skipping all, and even an unfortunate mistake that has been copy/
> pasted
> through a lot of test scripts.
>
> My solution is t/lib/BioperlTest.pm (documented with perldoc)
>
> We go from this:
>
> ----
> use strict;
> our $DEBUG;
>
> BEGIN {
> $DEBUG = $ENV{'BIOPERLDEBUG'} || 0;
>
> eval { require Test::More; };
> if( $@ ) {
> use lib 't/lib';
> }
> use Test::More; # the mistake!
>
> use Module::Build;
> my $build = Module::Build->current();
> my $do_network_tests = $build->notes('network');
>
> eval {
> require IO::String;
> require LWP;
> require LWP::UserAgent;
> };
> if ($@) {
> plan skip_all => 'IO::String or LWP or LWP::UserAgentnot
> installed.
> This means Bio::Tools::Run::RemoteBlast is not usable. Skipping
> tests';
> }
> elsif (!$do_network_tests) {
> plan skip_all => 'Network tests have not been requested, skipping
> all';
> }
> else {
> plan tests => 21;
> }
>
> #...
> }
>
> my $obj = Bio::Object->new(-verbose => $DEBUG);
> #...
> ----
>
> To this:
>
> ----
> use strict;
>
> BEGIN {
> use lib 't/lib';
> use BioperlTest;
>
> test_begin(-requires_modules => [qw(IO::String LWP
> LWP::UserAgent)],
> -requires_networking => 1,
> -tests => 21);
>
> #...
> }
>
> my $obj = Bio::Object->new(-verbose => test_debug());
> #...
> ----
>
>
> Can anyone identify problems with this approach? Is the interface
> presented by BioperlTest flexible enough that any changes would
> only be
> additions for new functionality (and therefore all test scripts
> wouldn't
> need to be altered)? Is BioperlTest missing anything you'd like?
>
> Are there any objections to me updating all tests in this manner?
> For an
> example, see t/RemoteBlast.t
>
>
> Cheers,
> Sendu.
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
--
===========================================================
: Hilmar Lapp -:- Durham, NC -:- hlapp at gmx dot net :
===========================================================
More information about the Bioperl-l
mailing list