[Bioperl-l] test::more template
Nathan Haigh
N.Haigh at sheffield.ac.uk
Thu Oct 19 17:38:25 UTC 2006
> Well, Analysis_soap.t ran immediately after, so Amap.t tests shouldn't be
> the problem. The only issue I can think of is that Test::More TODO blocks
> require a newer version of Test::Harness (which most users have anyway).
> Are you using a TODO block?
>
> You can send me Amap.t and I'll give it a try, but I can't promise I'll get
> to it immediately (busy day).
>
> Chris
>
> Christopher Fields
> Postdoctoral Researcher - Switzer Lab
> Dept. of Biochemistry
> University of Illinois Urbana-Champaign
>
>
>
No TODO blocks.
I must have done something wrong - it's the first time I've seen this - but then again, I don't look that closely at the output of "make test" unless
something shows as a fail. Anyway, below is the short bit of code.
Thanks
Nath
use strict;
use Bio::Root::IO; # cant test for this, might be needed to get Test::More
BEGIN {
# Things to do ASAP once the script is run
# even before anything else in the file is parsed
use vars qw($NUMTESTS $DEBUG $error);
$DEBUG = $ENV{'BIOIPERLDEBUG'} || 0;
# Use installed Test module, otherwise fall back
# to copy of Test.pm located in the t dir
eval { require Test::More; };
if ( $@ ) {
use lib Bio::Root::IO->catfile('t','lib');
}
# Currently no errors
$error = 0;
# Setup the number of tests to be run
# what about using:
# use Test::More 'no_plan';
use Test::More;
$NUMTESTS = 10;
plan tests => $NUMTESTS;
# Use modules that are needed in this test that are from
# any of the Bioperl packages: Bioperl-core, Bioperl-run ... etc
# use_ok('<module::to::use>');
use_ok('Bio::Tools::Run::Alignment::Amap');
use_ok('Bio::AlignIO');
use_ok('Bio::SeqIO');
use_ok('Bio::Root::IO');
}
# Multiple END blocks are run in reverse order of their definition
# Last In, First Out (LIFO)
END {
# Things to do right at the very end, just
# when the interpreter finishes/exits
# E.g. deleting intermediate files produced during the test
foreach my $file ( qw(cysprot.dnd cysprot1a.dnd) ) {
unlink $file;
# check it was deleted
}
#unlink qw(cysprot.dnd cysprot1a.dnd)
}
END {
# Not sure what this is doing?
#for ( $Test::ntest..$NUMTESTS ) {
# skip("Amap program not found. Skipping.\n",1);
#}
}
# if we got to here, thats OK!
# is this really needed?
ok( 1, 'All the required modules are present');
# setup input files etc
my $inputfilename = Bio::Root::IO->catfile("t","data","cysprot.fa");
# setup output files etc
# none in this test
# setup global objects that are to be used in more than one test
# Also test they were initialised correctly
my @params = ();
my $aln;
my $factory = Bio::Tools::Run::Alignment::Amap->new(@params);
ok( defined $factory, 'new() returned something' );
ok( $factory->isa('Bio::Tools::Run::Alignment::Amap'), ' and its the right class' );
# Now onto the nitty gritty tests of the modules methods
my $executable_file = $factory->executable();
#is( $factory->executable(), 'filename', 'executable() got the correct filename' );
# block of tests to skip if you know the tests will fail
# under some condition. E.g.:
# Need network access,
# Wont work on particular OS,
# Cant find the exectuable
# Do not just skip tests that seem to fail for an unknown reason
SKIP: {
# condition used to skip this block of tests
#skip($why, $how_many_in_block);
skip("Got incorrect filename for executable", 2)
unless is($factory->executable(), 'filename', 'executable() got the correct filename');
ok( -e $executable_file, 'Found executable' );
ok( $factory->version >= 2.0, 'Code tested on Amap versions >= 2.0' );
}
More information about the Bioperl-l
mailing list