use strict; use warnings; use Test::More; my $tests; plan tests => $tests; use lib 'eg'; use_ok('MyTimer'); BEGIN { $tests += 1; } { close STDERR; my $stderr = ''; open STDERR, '>', \$stderr or die; unlink 'timer.log'; my $t = MyTimer->new; isa_ok($t, 'MyTimer'); $t->mark("first db query"); $t->mark("second db query"); $t->mark("END"); $t->report; $t->shutdown; is ($stderr, ''); ok(-e 'timer.log'); my $log = slurp('timer.log'); like($log, qr/Total time/); like($log, qr/first db query/); like($log, qr/second db query/); like($log, qr/second db query -> END/); BEGIN { $tests += 7; } } sub slurp { my ($file) = @_; open my $fh, '<', $file or die; local $/ = undef; return <$fh>; }