#! /usr/bin/perl -T
use strict;
use warnings;
use Test::Class;
my @CALLED = ();
{
package Base::Test;
use base qw(Test::Class);
Base::Test->SKIP_CLASS( 1 );
sub setup : Test { die "this should not run" }
}
{
package A::Test;
use base qw(Base::Test);
use Test::More;
sub setup : Test {
pass 'non skipping test class run as expected';
push @CALLED, 'A::Test'
}
}
package main;
use Test::More tests => 5;
ok(! Test::Class->SKIP_CLASS, 'Test::Class->SKIP_CLASS default' );
ok( Base::Test->SKIP_CLASS, 'Base::Test->SKIP_CLASS overridden' );
ok(! A::Test->SKIP_CLASS, 'A::Test->SKIP_CLASS default' );
Base::Test->runtests;
is_deeply(
[sort @CALLED], [ qw(A::Test) ],
'runtests skipped classes with SKIP_CLASS set'
);