package Test::Unit::Runner; =head1 NAME Test::Unit::Runner - abstract base class for test runners =head1 SYNOPSIS my $runner = Test::Unit::TestRunner->new(); $runner->filter(@filter_tokens); $runner->start(...); =head1 DESCRIPTION This class is a parent class of all test runners, and hence is not intended to be used directly. It provides functionality such as state (e.g. run-time options) available to all runner classes. =cut use strict; use Test::Unit::Result; use base qw(Test::Unit::Listener); sub create_test_result { my $self = shift; return $self->{_result} = Test::Unit::Result->new(); } sub result { shift->{_result} } sub start_suite { my $self = shift; my ($suite) = @_; push @{ $self->{_suites_running} }, $suite; } sub end_suite { my $self = shift; my ($suite) = @_; pop @{ $self->{_suites_running} }; } =head2 suites_running() Returns an array stack of the current suites running. When a new suite is started, it is pushed on the stack, and it is popped on completion. Hence the first element in the returned array is the top-level suite, and the last is the innermost suite. =cut sub suites_running { my $self = shift; return @{ $self->{_suites_running} || [] }; } =head2 filter([ @tokens ]) Set the runner's filter tokens to the given list. =cut sub filter { my $self = shift; $self->{_filter} = [ @_ ] if @_; return @{ $self->{_filter} || [] }; } =head2 reset_filter() Clears the current filter. =cut sub reset_filter { my $self = shift; $self->{_filter} = []; } 1; =head1 AUTHOR Copyright (c) 2000-2002, 2005 the PerlUnit Development Team (see L or the F file included in this distribution). All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L, L, L =cut