4 if ( $ENV{PERL_CORE} ) {
6 @INC = ( '../lib', '../ext/Test/Harness/t/lib' );
15 use Test::More tests => 13;
18 aggregator_class => 'My::TAP::Parser::Aggregator',
19 formatter_class => 'My::TAP::Formatter::Console',
20 multiplexer_class => 'My::TAP::Parser::Multiplexer',
21 parser_class => 'My::TAP::Parser',
22 scheduler_class => 'My::TAP::Parser::Scheduler',
27 # Synthesize our subclasses
28 for my $class ( values %class_map ) {
29 ( my $base_class = $class ) =~ s/^My:://;
33 @{"${class}::ISA"} = ($base_class);
34 *{"${class}::new"} = sub {
38 # Can't use SUPER outside a package
39 return $base_class->can('new')->( $pkg, @_ );
44 ok my $harness = TAP::Harness->new( { %class_map, verbosity => -9 } ),
46 isa_ok $harness, 'TAP::Harness';
48 # Test dynamic loading
49 ok !$INC{'NOP.pm'}, 'NOP not loaded';
50 ok my $nop = $harness->_construct('NOP'), 'loaded and created';
52 ok $INC{'NOP.pm'}, 'NOP loaded';
54 my $aggregate = $harness->runtests(
57 ? ( File::Spec->updir, 'ext', 'Test', 'Harness' )
66 isa_ok $aggregate, 'My::TAP::Parser::Aggregator';
69 { 'My::TAP::Parser::Aggregator' => 1,
70 'My::TAP::Formatter::Console' => 1,
71 'My::TAP::Parser' => 1,
72 'My::TAP::Parser::Scheduler' => 1,