Does this look like a bug in Test::Class or have I missed something here?I think you've missed the little-used "+1" syntax for extending the number of tests run by a method in a subclass. For example:
{ package BaseClass; use base qw( Test::Class ); use Test::More; sub setup : Tests( setup => 1 ) { pass "base setup"; } sub test: Test { pass "the test"; } } { package SubClass; use base qw( BaseClass ); use Test::More; sub setup : Tests( setup => +1 ) { my $self = shift; $self->SUPER::setup; pass "subclass setup"; } } Test::Class->runtests; __END__ prove -v foo.t # # SubClass->test 1..5 ok 1 - base setup ok 2 - subclass setup ok 3 - the test # # BaseClass->test ok 4 - base setup ok 5 - the test ok 81 ms
Update: you can get the superclass setup methods to be called if if you don't override them by providing a subclass method of the same name, but then they're called in alphabetical order. As I've painfully discovered, that breaks things if your subclass setup method relies on something your superclass setup method creates.
I'm possible being dim - but I'm not sure what you're getting at here.
In reply to Re: Test::Class and setup methods
by adrianh
in thread Test::Class and setup methods
by Ovid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |