# t/Data.pm
package t::Data;
our @cases = (
{
label => "3 pairs",
input => ( 'a' .. 'f' ),
},
# etc...
);
1;
####
# t/42_somefunctionality.t
use Test::More; # no plan here!
use t::Data;
my $tests_per_case = 13;
plan tests => $test_per_case * @t::Data::cases;
for my $case ( @t::Data::cases ) {
# 13 tests here for each case
}
####
# t/DBM/Deep/Test.pm
package t::DBM::Deep::Test;
use base 'Test::Class';
use Test::More;
my @cases = (
# all test data here
);
sub startup :Test(startup) {
my $self = shift;
$self->{cases} = \@cases;
}
1;
####
# t/DBM/Deep/Feature1.pm
use base 't::DBM::Deep::Test';
use Test::More;
sub a_simple_test :Tests {
my $self = shift;
for my $c ( @{ $self->{cases} } ) {
# tests here
}
}
1;
####
# runtests.t
use t::DBM::Deep::Feature1;
use t::DBM::Deep::Feature2;
# etc...
Test::Class->runtests();