use strict; use warnings; use utf8; use Test::More; use Test::Ika; use Test::Ika::Reporter::Test; my $reporter = Test::Ika::Reporter::Test->new(); local $Test::Ika::REPORTER = $reporter; my @RESULT; { package sandbox; use Test::Ika; use Test::More; describe 'foo' => sub { before_suite { push @RESULT, 'BEFORE SUITE'; }; after_suite { push @RESULT, 'AFTER SUITE'; }; before_all { push @RESULT, 'BEFORE ALL foo'; }; after_all { push @RESULT, 'AFTER ALL foo'; }; before_each { push @RESULT, 'BEFORE EACH foo'; }; after_each { push @RESULT, 'AFTER EACH foo'; }; it p => sub { push @RESULT, 'test p'; }; }; describe 'x' => sub { before_all { push @RESULT, 'BEFORE ALL x'; }; after_all { push @RESULT, 'AFTER ALL x'; }; it y => sub { push @RESULT, 'test y'; }; it z => sub { push @RESULT, 'test z'; }; }; runtests; } is(join("\n", @RESULT), join("\n", ( 'BEFORE SUITE', 'BEFORE ALL foo', 'BEFORE EACH foo', 'test p', 'AFTER EACH foo', 'AFTER ALL foo', 'BEFORE ALL x', 'test y', 'test z', 'AFTER ALL x', 'AFTER SUITE', ))); done_testing;