From ae5bc9cd52c2776fab6b6e4ed99f8c51bd005889 Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Mon, 31 Aug 2020 16:39:07 -0700 Subject: [PATCH 1/3] Use subtest_streamed for the sequential executor --- Changes | 3 + lib/Test/Class/Moose/Executor/Parallel.pm | 7 + lib/Test/Class/Moose/Executor/Sequential.pm | 7 + lib/Test/Class/Moose/Role/Executor.pm | 15 +- t/basic.t | 55 ++++--- t/basiclib/TestsFor/Basic.pm | 143 +++++++++++++++++ t/basiclib/TestsFor/Basic/Subclass.pm | 153 +++++++++++++++++++ t/controllib/TestsFor/Control/SkipClass.pm | 6 +- t/controllib/TestsFor/Control/SkipMethod.pm | 15 +- t/include_exclude.t | 65 ++++++-- t/parallel.t | 2 +- t/parallellib/TestsFor/Alpha.pm | 2 +- t/parallellib/TestsFor/Alpha/Subclass.pm | 2 +- t/parallellib/TestsFor/Beta.pm | 2 +- t/parallellib/TestsFor/Sequential.pm | 2 +- t/parameterizedlib/TestsFor/Empty.pm | 25 +++ t/parameterizedlib/TestsFor/Parameterized.pm | 82 ++++++++++ t/planlib/TestsFor/Attributes.pm | 29 +++- t/planlib/TestsFor/Attributes/Subclass.pm | 29 +++- t/planlib/TestsFor/Person.pm | 10 +- t/planlib/TestsFor/Person/Employee.pm | 10 +- t/skiplib/TestsFor/SkipAll.pm | 24 +++ t/skiplib/TestsFor/SkipSomeMethods.pm | 78 ++++++++++ t/test_control_methods.t | 14 +- t/todolib/TestsFor/Todo.pm | 116 ++++++++++++++ 25 files changed, 827 insertions(+), 69 deletions(-) diff --git a/Changes b/Changes index 7d146a8..2b47f54 100644 --- a/Changes +++ b/Changes @@ -5,6 +5,9 @@ Revision history for Perl distribution Test-Class-Moose [ENHANCEMENTS] * Greatly expanded documentation for the test control methods. + * When using the sequential executor, the subtests used by + Test::Class::Moose are now streamed. Implemented by Greg Oschwald. GH + #107. 0.98 2019-10-26 diff --git a/lib/Test/Class/Moose/Executor/Parallel.pm b/lib/Test/Class/Moose/Executor/Parallel.pm index abbab2c..4f7b480 100755 --- a/lib/Test/Class/Moose/Executor/Parallel.pm +++ b/lib/Test/Class/Moose/Executor/Parallel.pm @@ -20,6 +20,7 @@ use Scalar::Util qw(reftype); use TAP::Formatter::Color 3.29; use Test2::API qw( test2_stack ); use Test2::AsyncSubtest 0.000018 (); +use Test2::Tools::AsyncSubtest qw( async_subtest ); use Test::Class::Moose::AttributeRegistry; use Test::Class::Moose::Report::Class; use Try::Tiny; @@ -194,6 +195,12 @@ sub _build_color { return TAP::Formatter::Color->new; } +sub _run_subtest { + shift; + + async_subtest(@_)->finish; +} + 1; =for Pod::Coverage Tags Tests runtests diff --git a/lib/Test/Class/Moose/Executor/Sequential.pm b/lib/Test/Class/Moose/Executor/Sequential.pm index 389ad1f..541655d 100644 --- a/lib/Test/Class/Moose/Executor/Sequential.pm +++ b/lib/Test/Class/Moose/Executor/Sequential.pm @@ -8,9 +8,16 @@ our $VERSION = '0.99'; use Moose 2.0000; use Carp; +use Test2::Tools::Subtest qw( subtest_streamed ); use namespace::autoclean; with 'Test::Class::Moose::Role::Executor'; +sub _run_subtest { + shift; + + subtest_streamed(@_); +} + __PACKAGE__->meta->make_immutable; 1; diff --git a/lib/Test/Class/Moose/Role/Executor.pm b/lib/Test/Class/Moose/Role/Executor.pm index 3d081cd..135e7ff 100644 --- a/lib/Test/Class/Moose/Role/Executor.pm +++ b/lib/Test/Class/Moose/Role/Executor.pm @@ -13,7 +13,6 @@ use namespace::autoclean; use List::SomeUtils qw(uniq); use List::Util qw(shuffle); use Test2::API qw( test2_stack ); -use Test2::Tools::AsyncSubtest qw( async_subtest ); use Test::Class::Moose::AttributeRegistry; use Test::Class::Moose::Config; use Test::Class::Moose::Report::Class; @@ -23,6 +22,8 @@ use Test::Class::Moose::Report; use Test::Class::Moose::Util qw( context_do ); use Try::Tiny; +requires '_run_subtest'; + has 'test_configuration' => ( is => 'ro', isa => 'Test::Class::Moose::Config', @@ -94,11 +95,11 @@ sub _run_test_classes { my @test_classes = @_; for my $test_class (@test_classes) { - async_subtest( + $self->_run_subtest( $test_class, { manual_skip_all => 1 }, sub { $self->run_test_class($test_class) } - )->finish; + ); } } @@ -180,7 +181,7 @@ sub _maybe_wrap_test_instance { ) unless $in_subtest; my $instance_report; - async_subtest( + $self->_run_subtest( $test_instance->test_instance_name, { manual_skip_all => 1 }, sub { @@ -189,7 +190,7 @@ sub _maybe_wrap_test_instance { $class_report, ); }, - )->finish; + ); return $instance_report; } @@ -446,7 +447,7 @@ sub run_test_method { # If the call to ->$test_method fails then this subtest will fail and # Test2::API will also include a diagnostic message with the error. - my $p = async_subtest( + my $p = $self->_run_subtest( $test_method, { manual_skip_all => 1 }, sub { @@ -466,7 +467,7 @@ sub run_test_method { $test_instance->$test_method($method_report); $num_tests = $hub->count; }, - )->finish; + ); $method_report->_end_benchmark; if ( $self->test_configuration->show_timing ) { diff --git a/t/basic.t b/t/basic.t index 293c001..4278a58 100644 --- a/t/basic.t +++ b/t/basic.t @@ -91,15 +91,21 @@ subtest_streamed( call max => 2; }; TestsFor::Basic->expected_test_events; + event Note => sub { + call message => 'Subtest: TestsFor::Basic::Subclass'; + }; event Subtest => sub { - call name => 'TestsFor::Basic::Subclass'; + call name => 'Subtest: TestsFor::Basic::Subclass'; call pass => F(); call subevents => array { event Plan => sub { call max => 6; }; + event Note => sub { + call message => 'Subtest: test_me'; + }; event Subtest => sub { - call name => 'test_me'; + call name => 'Subtest: test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -113,9 +119,12 @@ subtest_streamed( end(); }; }; + event Note => sub { + call message => 'Subtest: test_my_instance_name'; + }; event Subtest => sub { - call name => 'test_my_instance_name'; - call pass => T(); + call name => 'Subtest: test_my_instance_name'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); @@ -128,8 +137,11 @@ subtest_streamed( end(); }; }; + event Note => sub { + call message => 'Subtest: test_reporting'; + }; event Subtest => sub { - call name => 'test_reporting'; + call name => 'Subtest: test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -158,8 +170,11 @@ subtest_streamed( end(); }; }; + event Note => sub { + call message => 'Subtest: test_this_baby'; + }; event Subtest => sub { - call name => 'test_this_baby'; + call name => 'Subtest: test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { @@ -188,9 +203,13 @@ subtest_streamed( end(); }; }; + event Note => sub { + call message => + 'Subtest: test_this_should_be_run'; + }; event Subtest => sub { - call name => 'test_this_should_be_run'; - call pass => T(); + call name => 'Subtest: test_this_should_be_run'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); @@ -223,30 +242,28 @@ subtest_streamed( end(); }; }; + event Note => sub { + call message => 'Subtest: test_this_will_die'; + }; event Subtest => sub { - call name => 'test_this_will_die'; + call name => 'Subtest: test_this_will_die'; call pass => F(); call subevents => array { - event Exception => sub { - call error => match - qr{\Qforced die at \E.*\Qbasic.t\E.+}s; - }; - event Plan => sub { - call max => 0; - }; end(); }; }; + event Diag => sub { + call message => match qr{^\n?Failed test}; + }; event Diag => sub { call message => match - qr{\QFailed test 'test_this_will_die'\E.+}s; + qr{\Qforced die at \E.*\Qbasic.t\E.+}s; }; end(); }; }; event Diag => sub { - call message => match - qr{\QFailed test 'TestsFor::Basic::Subclass'\E.+}s; + call message => match qr{^\n?Failed test}; }; end(); } diff --git a/t/basiclib/TestsFor/Basic.pm b/t/basiclib/TestsFor/Basic.pm index 1e28b29..5684c12 100644 --- a/t/basiclib/TestsFor/Basic.pm +++ b/t/basiclib/TestsFor/Basic.pm @@ -61,6 +61,149 @@ sub test_reporting { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Basic'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::Basic'; + call pass => T(); + call subevents => array { + filter_items { + grep { + !$_->isa('Test2::AsyncSubtest::Event::Attach') + && !$_->isa('Test2::AsyncSubtest::Event::Detach') + } @_; + }; + event Plan => sub { + call max => 4; + call trace => object { + call package => 'Test::Class::Moose::Role::Executor'; + call subname => 'Test::Class::Moose::Util::context_do'; + }; + }; + event Note => sub { + call message => 'Subtest: test_me'; + }; + event Subtest => sub { + call name => 'Subtest: test_me'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => 'test_me() ran (TestsFor::Basic)'; + call trace => object { + call package => 'TestsFor::Basic'; + call subname => 'Test2::Tools::Basic::ok'; + }; + }; + event Ok => sub { + call pass => T(); + call name => 'this is another test (TestsFor::Basic)'; + call trace => object { + call package => 'TestsFor::Basic'; + call subname => 'Test2::Tools::Basic::ok'; + }; + }; + event Ok => sub { + call pass => T(); + call name => + 'test_setup() should know our current class name'; + }; + event Ok => sub { + call pass => T(); + call name => '... and our current method name'; + }; + event Plan => sub { + call max => 4; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_my_instance_name'; + }; + event Subtest => sub { + call name => 'Subtest: test_my_instance_name'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => 'test_instance_name matches class name'; + call trace => object { + call package => 'TestsFor::Basic'; + call subname => 'Test2::Tools::Compare::is'; + }; + }; + event Plan => sub { + call max => 1; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_reporting'; + }; + event Subtest => sub { + call name => 'Subtest: test_reporting'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => + 'current_instance() should report the correct class name'; + }; + event Ok => sub { + call pass => T(); + call name => + '... and we should also be able to get the current method name'; + }; + event Ok => sub { + call pass => T(); + call name => + 'test_setup() should know our current class name'; + }; + event Ok => sub { + call pass => T(); + call name => '... and our current method name'; + }; + event Plan => sub { + call max => 4; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_this_baby'; + }; + event Subtest => sub { + call name => 'Subtest: test_this_baby'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => 'whee! (TestsFor::Basic)'; + }; + event Ok => sub { + call pass => T(); + call name => + 'test_setup() should know our current class name'; + }; + event Ok => sub { + call pass => T(); + call name => '... and our current method name'; + }; + event Plan => sub { + call max => 3; + }; + end(); + }; + }; + end(); + }; + }; +} + +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Basic'; call pass => T(); diff --git a/t/basiclib/TestsFor/Basic/Subclass.pm b/t/basiclib/TestsFor/Basic/Subclass.pm index 39a9869..69bb5cb 100644 --- a/t/basiclib/TestsFor/Basic/Subclass.pm +++ b/t/basiclib/TestsFor/Basic/Subclass.pm @@ -28,6 +28,159 @@ sub test_this_should_be_run { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Basic::Subclass'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::Basic::Subclass'; + call pass => T(); + call subevents => array { + filter_items { + grep { + !$_->isa('Test2::AsyncSubtest::Event::Attach') + && !$_->isa('Test2::AsyncSubtest::Event::Detach') + } @_; + }; + event Plan => sub { + call max => 5; + }; + event Note => sub { + call message => 'Subtest: test_me'; + }; + event Subtest => sub { + call name => 'Subtest: test_me'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => + 'I overrode my parent! (TestsFor::Basic::Subclass)'; + }; + event Plan => sub { + call max => 1; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_my_instance_name'; + }; + event Subtest => sub { + call name => 'Subtest: test_my_instance_name'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => 'test_instance_name matches class name'; + }; + event Plan => sub { + call max => 1; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_reporting'; + }; + event Subtest => sub { + call name => 'Subtest: test_reporting'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => + 'current_instance() should report the correct class name'; + }; + event Ok => sub { + call pass => T(); + call name => + '... and we should also be able to get the current method name'; + }; + event Ok => sub { + call pass => T(); + call name => + 'test_setup() should know our current class name'; + }; + event Ok => sub { + call pass => T(); + call name => '... and our current method name'; + }; + event Plan => sub { + call max => 4; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_this_baby'; + }; + event Subtest => sub { + call name => 'Subtest: test_this_baby'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => + 'This should run before my parent method (TestsFor::Basic::Subclass)'; + }; + event Ok => sub { + call pass => T(); + call name => 'whee! (TestsFor::Basic::Subclass)'; + }; + event Ok => sub { + call pass => T(); + call name => + 'test_setup() should know our current class name'; + }; + event Ok => sub { + call pass => T(); + call name => '... and our current method name'; + }; + event Plan => sub { + call max => 4; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_this_should_be_run'; + }; + event Subtest => sub { + call name => 'Subtest: test_this_should_be_run'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => 'This is test number 1 in this method'; + }; + event Ok => sub { + call pass => T(); + call name => 'This is test number 2 in this method'; + }; + event Ok => sub { + call pass => T(); + call name => 'This is test number 3 in this method'; + }; + event Ok => sub { + call pass => T(); + call name => 'This is test number 4 in this method'; + }; + event Ok => sub { + call pass => T(); + call name => 'This is test number 5 in this method'; + }; + event Plan => sub { + call max => 5; + }; + end(); + }; + }; + end(); + }; + }; +} + +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Basic::Subclass'; call pass => T(); diff --git a/t/controllib/TestsFor/Control/SkipClass.pm b/t/controllib/TestsFor/Control/SkipClass.pm index f50ed54..afb27dd 100644 --- a/t/controllib/TestsFor/Control/SkipClass.pm +++ b/t/controllib/TestsFor/Control/SkipClass.pm @@ -22,8 +22,11 @@ sub test_method { sub run_control_methods_on_skip {1} sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Control::SkipClass'; + }; event Subtest => sub { - call name => 'TestsFor::Control::SkipClass'; + call name => 'Subtest: TestsFor::Control::SkipClass'; call pass => T(); call subevents => array { filter_items { @@ -61,4 +64,3 @@ sub expected_report { } 1; - diff --git a/t/controllib/TestsFor/Control/SkipMethod.pm b/t/controllib/TestsFor/Control/SkipMethod.pm index 942298c..3c5d143 100644 --- a/t/controllib/TestsFor/Control/SkipMethod.pm +++ b/t/controllib/TestsFor/Control/SkipMethod.pm @@ -28,8 +28,11 @@ sub test_will_skip { sub run_control_methods_on_skip {1} sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Control::SkipMethod'; + }; event Subtest => sub { - call name => 'TestsFor::Control::SkipMethod'; + call name => 'Subtest: TestsFor::Control::SkipMethod'; call pass => T(); call subevents => array { filter_items { @@ -41,8 +44,11 @@ sub expected_test_events { event Plan => sub { call max => 2; }; + event Note => sub { + call message => 'Subtest: test_method'; + }; event Subtest => sub { - call name => 'test_method'; + call name => 'Subtest: test_method'; call pass => T(); call subevents => array { event Ok => sub { @@ -58,8 +64,11 @@ sub expected_test_events { event Diag => sub { call message => 'in teardown'; }; + event Note => sub { + call message => 'Subtest: test_will_skip'; + }; event Subtest => sub { - call name => 'test_will_skip'; + call name => 'Subtest: test_will_skip'; call pass => T(); call subevents => array { event Plan => sub { diff --git a/t/include_exclude.t b/t/include_exclude.t index 6f2c481..b25c5d5 100644 --- a/t/include_exclude.t +++ b/t/include_exclude.t @@ -37,15 +37,21 @@ test_events_is( event Plan => sub { call max => 2; }; + event Note => sub { + call message => 'Subtest: TestsFor::Basic'; + }; event Subtest => sub { - call name => 'TestsFor::Basic'; + call name => 'Subtest: TestsFor::Basic'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; + event Note => sub { + call message => 'Subtest: test_this_baby'; + }; event Subtest => sub { - call name => 'test_this_baby'; + call name => 'Subtest: test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { @@ -71,15 +77,21 @@ test_events_is( }; end(); }; + event Note => sub { + call message => 'Subtest: TestsFor::Basic::Subclass'; + }; event Subtest => sub { - call name => 'TestsFor::Basic::Subclass'; + call name => 'Subtest: TestsFor::Basic::Subclass'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; + event Note => sub { + call message => 'Subtest: test_this_baby'; + }; event Subtest => sub { - call name => 'test_this_baby'; + call name => 'Subtest: test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { @@ -162,15 +174,21 @@ test_events_is( event Plan => sub { call max => 2; }; + event Note => sub { + call message => 'Subtest: TestsFor::Basic'; + }; event Subtest => sub { - call name => 'TestsFor::Basic'; + call name => 'Subtest: TestsFor::Basic'; call pass => T(); call subevents => array { event Plan => sub { call max => 3; }; + event Note => sub { + call message => 'Subtest: test_me'; + }; event Subtest => sub { - call name => 'test_me'; + call name => 'Subtest: test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -197,8 +215,11 @@ test_events_is( end(); }; }; + event Note => sub { + call message => 'Subtest: test_my_instance_name'; + }; event Subtest => sub { - call name => 'test_my_instance_name'; + call name => 'Subtest: test_my_instance_name'; call pass => T(); call subevents => array { event Ok => sub { @@ -212,8 +233,11 @@ test_events_is( end(); }; }; + event Note => sub { + call message => 'Subtest: test_reporting'; + }; event Subtest => sub { - call name => 'test_reporting'; + call name => 'Subtest: test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -244,15 +268,21 @@ test_events_is( end(); }; }; + event Note => sub { + call message => 'Subtest: TestsFor::Basic::Subclass'; + }; event Subtest => sub { - call name => 'TestsFor::Basic::Subclass'; + call name => 'Subtest: TestsFor::Basic::Subclass'; call pass => T(); call subevents => array { event Plan => sub { call max => 4; }; + event Note => sub { + call message => 'Subtest: test_me'; + }; event Subtest => sub { - call name => 'test_me'; + call name => 'Subtest: test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -266,8 +296,11 @@ test_events_is( end(); }; }; + event Note => sub { + call message => 'Subtest: test_my_instance_name'; + }; event Subtest => sub { - call name => 'test_my_instance_name'; + call name => 'Subtest: test_my_instance_name'; call pass => T(); call subevents => array { event Ok => sub { @@ -281,8 +314,11 @@ test_events_is( end(); }; }; + event Note => sub { + call message => 'Subtest: test_reporting'; + }; event Subtest => sub { - call name => 'test_reporting'; + call name => 'Subtest: test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -310,8 +346,11 @@ test_events_is( end(); }; }; + event Note => sub { + call message => 'Subtest: test_this_should_be_run'; + }; event Subtest => sub { - call name => 'test_this_should_be_run'; + call name => 'Subtest: test_this_should_be_run'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/parallel.t b/t/parallel.t index d860d39..8066fcb 100644 --- a/t/parallel.t +++ b/t/parallel.t @@ -89,7 +89,7 @@ for my $class (@classes) { @_; return @_[ $i .. $#_ ]; }; - $class->expected_test_events; + $class->expected_parallel_test_events; }, "parallel tests produce the events for $class" ); diff --git a/t/parallellib/TestsFor/Alpha.pm b/t/parallellib/TestsFor/Alpha.pm index 0c59093..a2b68ea 100644 --- a/t/parallellib/TestsFor/Alpha.pm +++ b/t/parallellib/TestsFor/Alpha.pm @@ -16,7 +16,7 @@ sub test_second { ok 1, 'make sure plans work'; } -sub expected_test_events { +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Alpha'; call pass => T(); diff --git a/t/parallellib/TestsFor/Alpha/Subclass.pm b/t/parallellib/TestsFor/Alpha/Subclass.pm index ffef564..5b410a1 100644 --- a/t/parallellib/TestsFor/Alpha/Subclass.pm +++ b/t/parallellib/TestsFor/Alpha/Subclass.pm @@ -9,7 +9,7 @@ sub test_another { ok 1; } -sub expected_test_events { +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Alpha::Subclass'; call pass => T(); diff --git a/t/parallellib/TestsFor/Beta.pm b/t/parallellib/TestsFor/Beta.pm index 7473cad..b5dff5f 100644 --- a/t/parallellib/TestsFor/Beta.pm +++ b/t/parallellib/TestsFor/Beta.pm @@ -15,7 +15,7 @@ sub test_second { ok 2; } -sub expected_test_events { +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Beta'; call pass => T(); diff --git a/t/parallellib/TestsFor/Sequential.pm b/t/parallellib/TestsFor/Sequential.pm index 13d741c..a024f24 100644 --- a/t/parallellib/TestsFor/Sequential.pm +++ b/t/parallellib/TestsFor/Sequential.pm @@ -13,7 +13,7 @@ sub test_sequential_second { ok 1; } -sub expected_test_events { +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Sequential'; call pass => T(); diff --git a/t/parameterizedlib/TestsFor/Empty.pm b/t/parameterizedlib/TestsFor/Empty.pm index 4809d71..84f6858 100644 --- a/t/parameterizedlib/TestsFor/Empty.pm +++ b/t/parameterizedlib/TestsFor/Empty.pm @@ -20,6 +20,31 @@ sub test_one_set { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Empty'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::Empty'; + call pass => T(); + call subevents => array { + filter_items { + grep { + !$_->isa('Test2::AsyncSubtest::Event::Attach') + && !$_->isa('Test2::AsyncSubtest::Event::Detach') + } @_; + }; + event Plan => sub { + call directive => 'SKIP'; + call reason => + q{Skipping 'TestsFor::Empty': no test instances found}; + call max => 0; + }; + end(); + }; + }; +} + +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Empty'; call pass => T(); diff --git a/t/parameterizedlib/TestsFor/Parameterized.pm b/t/parameterizedlib/TestsFor/Parameterized.pm index a7738fd..5447195 100644 --- a/t/parameterizedlib/TestsFor/Parameterized.pm +++ b/t/parameterizedlib/TestsFor/Parameterized.pm @@ -33,6 +33,88 @@ sub test_one_set { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Parameterized'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::Parameterized'; + call pass => T(); + call subevents => array { + filter_items { + grep { + !$_->isa('Test2::AsyncSubtest::Event::Attach') + && !$_->isa('Test2::AsyncSubtest::Event::Detach') + } @_; + }; + event Plan => sub { + call max => 2; + }; + event Note => sub { + call message => 'Subtest: TestsFor::Parameterized with bar'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::Parameterized with bar'; + call pass => T(); + call subevents => array { + event Plan => sub { + call max => 1; + }; + event Note => sub { + call message => 'Subtest: test_one_set'; + }; + event Subtest => sub { + call name => 'Subtest: test_one_set'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => 'ran a test where bar is 42'; + }; + event Plan => sub { + call max => 1; + }; + end(); + }; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: TestsFor::Parameterized with foo'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::Parameterized with foo'; + call pass => T(); + call subevents => array { + event Plan => sub { + call max => 1; + }; + event Note => sub { + call message => 'Subtest: test_one_set'; + }; + event Subtest => sub { + call name => 'Subtest: test_one_set'; + call pass => T(); + call subevents => array { + event Ok => sub { + call pass => T(); + call name => 'ran a test where foo is 42'; + }; + event Plan => sub { + call max => 1; + }; + end(); + }; + }; + end(); + }; + }; + end(); + }; + }; +} + +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Parameterized'; call pass => T(); diff --git a/t/planlib/TestsFor/Attributes.pm b/t/planlib/TestsFor/Attributes.pm index 6749081..7556a0a 100644 --- a/t/planlib/TestsFor/Attributes.pm +++ b/t/planlib/TestsFor/Attributes.pm @@ -23,15 +23,21 @@ sub this_is_a_test_method_because_of_the_attribute : Tests(3) { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Attributes'; + }; event Subtest => sub { - call name => 'TestsFor::Attributes'; + call name => 'Subtest: TestsFor::Attributes'; call pass => T(); call subevents => array { event Plan => sub { call max => 4; }; + event Note => sub { + call message => 'Subtest: test_just_one_test'; + }; event Subtest => sub { - call name => 'test_just_one_test'; + call name => 'Subtest: test_just_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -44,8 +50,11 @@ sub expected_test_events { end(); }; }; + event Note => sub { + call message => 'Subtest: test_more_than_one_test'; + }; event Subtest => sub { - call name => 'test_more_than_one_test'; + call name => 'Subtest: test_more_than_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -62,8 +71,11 @@ sub expected_test_events { end(); }; }; + event Note => sub { + call message => 'Subtest: test_with_attribute_but_no_plan'; + }; event Subtest => sub { - call name => 'test_with_attribute_but_no_plan'; + call name => 'Subtest: test_with_attribute_but_no_plan'; call pass => T(); call subevents => array { event Ok => sub { @@ -92,9 +104,14 @@ sub expected_test_events { end(); }; }; + event Note => sub { + call message => + 'Subtest: this_is_a_test_method_because_of_the_attribute'; + }; event Subtest => sub { - call name => 'this_is_a_test_method_because_of_the_attribute'; - call pass => T(); + call name => + 'Subtest: this_is_a_test_method_because_of_the_attribute'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); diff --git a/t/planlib/TestsFor/Attributes/Subclass.pm b/t/planlib/TestsFor/Attributes/Subclass.pm index 4a4551b..4b679e3 100644 --- a/t/planlib/TestsFor/Attributes/Subclass.pm +++ b/t/planlib/TestsFor/Attributes/Subclass.pm @@ -28,15 +28,21 @@ sub this_is_a_test_method_because_of_the_attribute : Tests { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Attributes::Subclass'; + }; event Subtest => sub { - call name => 'TestsFor::Attributes::Subclass'; + call name => 'Subtest: TestsFor::Attributes::Subclass'; call pass => T(); call subevents => array { event Plan => sub { call max => 4; }; + event Note => sub { + call message => 'Subtest: test_just_one_test'; + }; event Subtest => sub { - call name => 'test_just_one_test'; + call name => 'Subtest: test_just_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -49,8 +55,11 @@ sub expected_test_events { end(); }; }; + event Note => sub { + call message => 'Subtest: test_more_than_one_test'; + }; event Subtest => sub { - call name => 'test_more_than_one_test'; + call name => 'Subtest: test_more_than_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -71,8 +80,11 @@ sub expected_test_events { end(); }; }; + event Note => sub { + call message => 'Subtest: test_with_attribute_but_no_plan'; + }; event Subtest => sub { - call name => 'test_with_attribute_but_no_plan'; + call name => 'Subtest: test_with_attribute_but_no_plan'; call pass => T(); call subevents => array { event Ok => sub { @@ -93,9 +105,14 @@ sub expected_test_events { end(); }; }; + event Note => sub { + call message => + 'Subtest: this_is_a_test_method_because_of_the_attribute'; + }; event Subtest => sub { - call name => 'this_is_a_test_method_because_of_the_attribute'; - call pass => T(); + call name => + 'Subtest: this_is_a_test_method_because_of_the_attribute'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); diff --git a/t/planlib/TestsFor/Person.pm b/t/planlib/TestsFor/Person.pm index 41dd725..2baf4ef 100644 --- a/t/planlib/TestsFor/Person.pm +++ b/t/planlib/TestsFor/Person.pm @@ -29,15 +29,21 @@ sub test_person { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Person'; + }; event Subtest => sub { - call name => 'TestsFor::Person'; + call name => 'Subtest: TestsFor::Person'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; + event Note => sub { + call message => 'Subtest: test_person'; + }; event Subtest => sub { - call name => 'test_person'; + call name => 'Subtest: test_person'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/planlib/TestsFor/Person/Employee.pm b/t/planlib/TestsFor/Person/Employee.pm index 04fcef2..92e22af 100644 --- a/t/planlib/TestsFor/Person/Employee.pm +++ b/t/planlib/TestsFor/Person/Employee.pm @@ -18,15 +18,21 @@ BEGIN { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Person::Employee'; + }; event Subtest => sub { - call name => 'TestsFor::Person::Employee'; + call name => 'Subtest: TestsFor::Person::Employee'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; + event Note => sub { + call message => 'Subtest: test_person'; + }; event Subtest => sub { - call name => 'test_person'; + call name => 'Subtest: test_person'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/skiplib/TestsFor/SkipAll.pm b/t/skiplib/TestsFor/SkipAll.pm index f46cf92..d6c7e39 100644 --- a/t/skiplib/TestsFor/SkipAll.pm +++ b/t/skiplib/TestsFor/SkipAll.pm @@ -29,6 +29,30 @@ sub test_this_baby { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::SkipAll'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::SkipAll'; + call pass => T(); + call subevents => array { + filter_items { + grep { + !$_->isa('Test2::AsyncSubtest::Event::Attach') + && !$_->isa('Test2::AsyncSubtest::Event::Detach') + } @_; + }; + event Plan => sub { + call directive => 'SKIP'; + call reason => 'all methods should be skipped'; + call max => 0; + }; + end(); + }; + }; +} + +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::SkipAll'; call pass => T(); diff --git a/t/skiplib/TestsFor/SkipSomeMethods.pm b/t/skiplib/TestsFor/SkipSomeMethods.pm index 2954441..894eab3 100644 --- a/t/skiplib/TestsFor/SkipSomeMethods.pm +++ b/t/skiplib/TestsFor/SkipSomeMethods.pm @@ -33,6 +33,84 @@ sub test_this_baby { sub test_again { ok 1, 'in test_again' } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::SkipSomeMethods'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::SkipSomeMethods'; + call pass => T(); + call subevents => array { + filter_items { + grep { + !$_->isa('Test2::AsyncSubtest::Event::Attach') + && !$_->isa('Test2::AsyncSubtest::Event::Detach') + } @_; + }; + event Plan => sub { + call max => 3; + }; + event Note => sub { + call message => 'Subtest: test_again'; + }; + event Subtest => sub { + call name => 'Subtest: test_again'; + call pass => T(); + call subevents => array { + event Ok => sub { + call name => 'in test_again'; + call pass => T(); + }; + event Plan => sub { + call max => 1; + }; + end(); + }; + }; + event Diag => sub { + call message => 'in teardown'; + }; + event Note => sub { + call message => 'Subtest: test_me'; + }; + event Subtest => sub { + call name => 'Subtest: test_me'; + call pass => T(); + call subevents => array { + event Plan => sub { + call directive => 'SKIP'; + call reason => + 'only methods listed as skipped should be skipped'; + call max => 0; + }; + end(); + }; + }; + event Note => sub { + call message => 'Subtest: test_this_baby'; + }; + event Subtest => sub { + call name => 'Subtest: test_this_baby'; + call pass => T(); + call subevents => array { + event Ok => sub { + call name => 'whee! (TestsFor::SkipSomeMethods)'; + call pass => T(); + }; + event Plan => sub { + call max => 1; + }; + end(); + }; + }; + event Diag => sub { + call message => 'in teardown'; + }; + end(); + }; + }; +} + +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::SkipSomeMethods'; call pass => T(); diff --git a/t/test_control_methods.t b/t/test_control_methods.t index 05d7c2d..d1dac30 100644 --- a/t/test_control_methods.t +++ b/t/test_control_methods.t @@ -47,8 +47,11 @@ subtest_streamed( call max => 2; }; TestsFor::Basic->expected_test_events; + event Note => sub { + call message => 'Subtest: TestsFor::Basic::Subclass'; + }; event Subtest => sub { - call name => 'TestsFor::Basic::Subclass'; + call name => 'Subtest: TestsFor::Basic::Subclass'; call pass => F(); call subevents => array { event Ok => sub { @@ -72,7 +75,7 @@ subtest_streamed( }; event Diag => sub { call message => match - qr/\QFailed test 'TestsFor::Basic::Subclass'\E.+/s; + qr/\QFailed test 'Subtest: TestsFor::Basic::Subclass'\E.+/s; }; end(); } @@ -95,8 +98,11 @@ subtest_streamed( call max => 2; }; TestsFor::Basic->expected_test_events; + event Note => sub { + call message => 'Subtest: TestsFor::Basic::Subclass'; + }; event Subtest => sub { - call name => 'TestsFor::Basic::Subclass'; + call name => 'Subtest: TestsFor::Basic::Subclass'; call pass => F(); call subevents => array { event Ok => sub { @@ -124,7 +130,7 @@ subtest_streamed( }; event Diag => sub { call message => match - qr/\QFailed test 'TestsFor::Basic::Subclass'\E.+/s; + qr/\QFailed test 'Subtest: TestsFor::Basic::Subclass'\E.+/s; }; end(); } diff --git a/t/todolib/TestsFor/Todo.pm b/t/todolib/TestsFor/Todo.pm index 7e6dc1a..128a779 100644 --- a/t/todolib/TestsFor/Todo.pm +++ b/t/todolib/TestsFor/Todo.pm @@ -47,6 +47,122 @@ sub test_todo_die2 { } sub expected_test_events { + event Note => sub { + call message => 'Subtest: TestsFor::Todo'; + }; + event Subtest => sub { + call name => 'Subtest: TestsFor::Todo'; + call pass => F(); + call effective_pass => F(); + + call subevents => array { + filter_items { + grep { + !$_->isa('Test2::AsyncSubtest::Event::Attach') + && !$_->isa('Test2::AsyncSubtest::Event::Detach') + } @_; + }; + + event Plan => sub { + call max => 3; + }; + + event Note => sub { + call message => 'Subtest: test_todo'; + }; + event Subtest => sub { + call name => 'Subtest: test_todo'; + call pass => T(); + call effective_pass => T(); + + call subevents => array { + event Ok => sub { + call name => 'pre-todo'; + call pass => T(); + call effective_pass => T(); + }; + + event Ok => sub { + call name => 'in todo'; + call pass => F(); + call effective_pass => T(); + }; + + event Note => sub { + call message => match qr{^\n?Failed test}; + }; + + event Ok => sub { + call name => 'post-todo'; + call pass => T(); + call effective_pass => T(); + }; + + event Plan => sub { + call max => 3; + }; + end(); + }; + }; + + event Note => sub { + call message => 'Subtest: test_todo_die1'; + }; + event Subtest => sub { + call name => 'Subtest: test_todo_die1'; + call pass => F(); + call effective_pass => F(); + + call subevents => array { + event Ok => sub { + call name => 'pre-todo'; + call pass => T(); + call effective_pass => T(); + }; + end(); + }; + }; + + event Diag => sub { + call message => match qr{^\n?Failed test}; + }; + + event Diag => sub { + call message => match qr/in todo at .+/; + }; + + event Note => sub { + call message => 'Subtest: test_todo_die2'; + }; + event Subtest => sub { + call name => 'Subtest: test_todo_die2'; + call pass => F(); + call effective_pass => F(); + + call subevents => array { + event Ok => sub { + call name => 'pre-todo'; + call pass => T(); + call effective_pass => T(); + }; + end(); + }; + }; + + event Diag => sub { + call message => match qr{^\n?Failed test}; + }; + + event Diag => sub { + call message => match qr/in todo at .+/; + }; + + end(); + }; + }; +} + +sub expected_parallel_test_events { event Subtest => sub { call name => 'TestsFor::Todo'; call pass => F(); From 011bd7e48971a393bda96514d13764967a9c41cd Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Wed, 2 Sep 2020 10:02:49 -0700 Subject: [PATCH 2/3] Remove two unused variables --- lib/Test/Class/Moose/Role/Executor.pm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/Test/Class/Moose/Role/Executor.pm b/lib/Test/Class/Moose/Role/Executor.pm index 135e7ff..c9763de 100644 --- a/lib/Test/Class/Moose/Role/Executor.pm +++ b/lib/Test/Class/Moose/Role/Executor.pm @@ -226,8 +226,6 @@ sub run_test_instance { return; } - my $report = $self->test_report; - unless ( $self->run_test_control_method( $test_instance, 'test_startup', $instance_report, @@ -437,8 +435,7 @@ sub run_test_method { $method_report->_start_benchmark; - my $num_tests = 0; - my $test_class = $test_instance->test_class; + my $num_tests = 0; context_do { my $ctx = shift; From a8f0812b4fff2664febd7e0a82819514f596fe6a Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Wed, 2 Sep 2020 10:31:29 -0700 Subject: [PATCH 3/3] Use Test2::API directly --- lib/Test/Class/Moose/Executor/Sequential.pm | 18 +++++-- t/basic.t | 33 ++++++------- t/basiclib/TestsFor/Basic.pm | 20 ++++---- t/basiclib/TestsFor/Basic/Subclass.pm | 24 ++++----- t/controllib/TestsFor/Control/SkipClass.pm | 4 +- t/controllib/TestsFor/Control/SkipMethod.pm | 12 ++--- t/include_exclude.t | 52 ++++++++++---------- t/parameterizedlib/TestsFor/Empty.pm | 4 +- t/parameterizedlib/TestsFor/Parameterized.pm | 20 ++++---- t/planlib/TestsFor/Attributes.pm | 23 +++++---- t/planlib/TestsFor/Attributes/Subclass.pm | 23 +++++---- t/planlib/TestsFor/Person.pm | 8 +-- t/planlib/TestsFor/Person/Employee.pm | 8 +-- t/skiplib/TestsFor/SkipAll.pm | 4 +- t/skiplib/TestsFor/SkipSomeMethods.pm | 16 +++--- t/test_control_methods.t | 12 ++--- t/todolib/TestsFor/Todo.pm | 16 +++--- 17 files changed, 153 insertions(+), 144 deletions(-) diff --git a/lib/Test/Class/Moose/Executor/Sequential.pm b/lib/Test/Class/Moose/Executor/Sequential.pm index 541655d..a2f889d 100644 --- a/lib/Test/Class/Moose/Executor/Sequential.pm +++ b/lib/Test/Class/Moose/Executor/Sequential.pm @@ -8,14 +8,26 @@ our $VERSION = '0.99'; use Moose 2.0000; use Carp; -use Test2::Tools::Subtest qw( subtest_streamed ); +use Test2::API qw( context run_subtest ); use namespace::autoclean; with 'Test::Class::Moose::Role::Executor'; sub _run_subtest { shift; - - subtest_streamed(@_); + my $name = shift; + my $params = shift; + my $code = shift; + + my $ctx = context(); + my $pass = run_subtest( + $name, + $code, + { %{$params}, buffered => 0 }, + @_, + ); + $ctx->release; + + return $pass; } __PACKAGE__->meta->make_immutable; diff --git a/t/basic.t b/t/basic.t index 4278a58..fe51f56 100644 --- a/t/basic.t +++ b/t/basic.t @@ -92,20 +92,20 @@ subtest_streamed( }; TestsFor::Basic->expected_test_events; event Note => sub { - call message => 'Subtest: TestsFor::Basic::Subclass'; + call message => 'TestsFor::Basic::Subclass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic::Subclass'; + call name => 'TestsFor::Basic::Subclass'; call pass => F(); call subevents => array { event Plan => sub { call max => 6; }; event Note => sub { - call message => 'Subtest: test_me'; + call message => 'test_me'; }; event Subtest => sub { - call name => 'Subtest: test_me'; + call name => 'test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -120,11 +120,11 @@ subtest_streamed( }; }; event Note => sub { - call message => 'Subtest: test_my_instance_name'; + call message => 'test_my_instance_name'; }; event Subtest => sub { - call name => 'Subtest: test_my_instance_name'; - call pass => T(); + call name => 'test_my_instance_name'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); @@ -138,10 +138,10 @@ subtest_streamed( }; }; event Note => sub { - call message => 'Subtest: test_reporting'; + call message => 'test_reporting'; }; event Subtest => sub { - call name => 'Subtest: test_reporting'; + call name => 'test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -171,10 +171,10 @@ subtest_streamed( }; }; event Note => sub { - call message => 'Subtest: test_this_baby'; + call message => 'test_this_baby'; }; event Subtest => sub { - call name => 'Subtest: test_this_baby'; + call name => 'test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { @@ -204,12 +204,11 @@ subtest_streamed( }; }; event Note => sub { - call message => - 'Subtest: test_this_should_be_run'; + call message => 'test_this_should_be_run'; }; event Subtest => sub { - call name => 'Subtest: test_this_should_be_run'; - call pass => T(); + call name => 'test_this_should_be_run'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); @@ -243,10 +242,10 @@ subtest_streamed( }; }; event Note => sub { - call message => 'Subtest: test_this_will_die'; + call message => 'test_this_will_die'; }; event Subtest => sub { - call name => 'Subtest: test_this_will_die'; + call name => 'test_this_will_die'; call pass => F(); call subevents => array { end(); diff --git a/t/basiclib/TestsFor/Basic.pm b/t/basiclib/TestsFor/Basic.pm index 5684c12..bed73ad 100644 --- a/t/basiclib/TestsFor/Basic.pm +++ b/t/basiclib/TestsFor/Basic.pm @@ -62,10 +62,10 @@ sub test_reporting { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Basic'; + call message => 'TestsFor::Basic'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic'; + call name => 'TestsFor::Basic'; call pass => T(); call subevents => array { filter_items { @@ -82,10 +82,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_me'; + call message => 'test_me'; }; event Subtest => sub { - call name => 'Subtest: test_me'; + call name => 'test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -120,10 +120,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_my_instance_name'; + call message => 'test_my_instance_name'; }; event Subtest => sub { - call name => 'Subtest: test_my_instance_name'; + call name => 'test_my_instance_name'; call pass => T(); call subevents => array { event Ok => sub { @@ -141,10 +141,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_reporting'; + call message => 'test_reporting'; }; event Subtest => sub { - call name => 'Subtest: test_reporting'; + call name => 'test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -173,10 +173,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_this_baby'; + call message => 'test_this_baby'; }; event Subtest => sub { - call name => 'Subtest: test_this_baby'; + call name => 'test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/basiclib/TestsFor/Basic/Subclass.pm b/t/basiclib/TestsFor/Basic/Subclass.pm index 69bb5cb..47896ad 100644 --- a/t/basiclib/TestsFor/Basic/Subclass.pm +++ b/t/basiclib/TestsFor/Basic/Subclass.pm @@ -29,10 +29,10 @@ sub test_this_should_be_run { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Basic::Subclass'; + call message => 'TestsFor::Basic::Subclass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic::Subclass'; + call name => 'TestsFor::Basic::Subclass'; call pass => T(); call subevents => array { filter_items { @@ -45,10 +45,10 @@ sub expected_test_events { call max => 5; }; event Note => sub { - call message => 'Subtest: test_me'; + call message => 'test_me'; }; event Subtest => sub { - call name => 'Subtest: test_me'; + call name => 'test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -63,10 +63,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_my_instance_name'; + call message => 'test_my_instance_name'; }; event Subtest => sub { - call name => 'Subtest: test_my_instance_name'; + call name => 'test_my_instance_name'; call pass => T(); call subevents => array { event Ok => sub { @@ -80,10 +80,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_reporting'; + call message => 'test_reporting'; }; event Subtest => sub { - call name => 'Subtest: test_reporting'; + call name => 'test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -112,10 +112,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_this_baby'; + call message => 'test_this_baby'; }; event Subtest => sub { - call name => 'Subtest: test_this_baby'; + call name => 'test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { @@ -143,10 +143,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_this_should_be_run'; + call message => 'test_this_should_be_run'; }; event Subtest => sub { - call name => 'Subtest: test_this_should_be_run'; + call name => 'test_this_should_be_run'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/controllib/TestsFor/Control/SkipClass.pm b/t/controllib/TestsFor/Control/SkipClass.pm index afb27dd..21af628 100644 --- a/t/controllib/TestsFor/Control/SkipClass.pm +++ b/t/controllib/TestsFor/Control/SkipClass.pm @@ -23,10 +23,10 @@ sub run_control_methods_on_skip {1} sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Control::SkipClass'; + call message => 'TestsFor::Control::SkipClass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Control::SkipClass'; + call name => 'TestsFor::Control::SkipClass'; call pass => T(); call subevents => array { filter_items { diff --git a/t/controllib/TestsFor/Control/SkipMethod.pm b/t/controllib/TestsFor/Control/SkipMethod.pm index 3c5d143..3578365 100644 --- a/t/controllib/TestsFor/Control/SkipMethod.pm +++ b/t/controllib/TestsFor/Control/SkipMethod.pm @@ -29,10 +29,10 @@ sub run_control_methods_on_skip {1} sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Control::SkipMethod'; + call message => 'TestsFor::Control::SkipMethod'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Control::SkipMethod'; + call name => 'TestsFor::Control::SkipMethod'; call pass => T(); call subevents => array { filter_items { @@ -45,10 +45,10 @@ sub expected_test_events { call max => 2; }; event Note => sub { - call message => 'Subtest: test_method'; + call message => 'test_method'; }; event Subtest => sub { - call name => 'Subtest: test_method'; + call name => 'test_method'; call pass => T(); call subevents => array { event Ok => sub { @@ -65,10 +65,10 @@ sub expected_test_events { call message => 'in teardown'; }; event Note => sub { - call message => 'Subtest: test_will_skip'; + call message => 'test_will_skip'; }; event Subtest => sub { - call name => 'Subtest: test_will_skip'; + call name => 'test_will_skip'; call pass => T(); call subevents => array { event Plan => sub { diff --git a/t/include_exclude.t b/t/include_exclude.t index b25c5d5..15df1b9 100644 --- a/t/include_exclude.t +++ b/t/include_exclude.t @@ -38,20 +38,20 @@ test_events_is( call max => 2; }; event Note => sub { - call message => 'Subtest: TestsFor::Basic'; + call message => 'TestsFor::Basic'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic'; + call name => 'TestsFor::Basic'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; event Note => sub { - call message => 'Subtest: test_this_baby'; + call message => 'test_this_baby'; }; event Subtest => sub { - call name => 'Subtest: test_this_baby'; + call name => 'test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { @@ -78,20 +78,20 @@ test_events_is( end(); }; event Note => sub { - call message => 'Subtest: TestsFor::Basic::Subclass'; + call message => 'TestsFor::Basic::Subclass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic::Subclass'; + call name => 'TestsFor::Basic::Subclass'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; event Note => sub { - call message => 'Subtest: test_this_baby'; + call message => 'test_this_baby'; }; event Subtest => sub { - call name => 'Subtest: test_this_baby'; + call name => 'test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { @@ -175,20 +175,20 @@ test_events_is( call max => 2; }; event Note => sub { - call message => 'Subtest: TestsFor::Basic'; + call message => 'TestsFor::Basic'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic'; + call name => 'TestsFor::Basic'; call pass => T(); call subevents => array { event Plan => sub { call max => 3; }; event Note => sub { - call message => 'Subtest: test_me'; + call message => 'test_me'; }; event Subtest => sub { - call name => 'Subtest: test_me'; + call name => 'test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -216,10 +216,10 @@ test_events_is( }; }; event Note => sub { - call message => 'Subtest: test_my_instance_name'; + call message => 'test_my_instance_name'; }; event Subtest => sub { - call name => 'Subtest: test_my_instance_name'; + call name => 'test_my_instance_name'; call pass => T(); call subevents => array { event Ok => sub { @@ -234,10 +234,10 @@ test_events_is( }; }; event Note => sub { - call message => 'Subtest: test_reporting'; + call message => 'test_reporting'; }; event Subtest => sub { - call name => 'Subtest: test_reporting'; + call name => 'test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -269,20 +269,20 @@ test_events_is( }; }; event Note => sub { - call message => 'Subtest: TestsFor::Basic::Subclass'; + call message => 'TestsFor::Basic::Subclass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic::Subclass'; + call name => 'TestsFor::Basic::Subclass'; call pass => T(); call subevents => array { event Plan => sub { call max => 4; }; event Note => sub { - call message => 'Subtest: test_me'; + call message => 'test_me'; }; event Subtest => sub { - call name => 'Subtest: test_me'; + call name => 'test_me'; call pass => T(); call subevents => array { event Ok => sub { @@ -297,10 +297,10 @@ test_events_is( }; }; event Note => sub { - call message => 'Subtest: test_my_instance_name'; + call message => 'test_my_instance_name'; }; event Subtest => sub { - call name => 'Subtest: test_my_instance_name'; + call name => 'test_my_instance_name'; call pass => T(); call subevents => array { event Ok => sub { @@ -315,10 +315,10 @@ test_events_is( }; }; event Note => sub { - call message => 'Subtest: test_reporting'; + call message => 'test_reporting'; }; event Subtest => sub { - call name => 'Subtest: test_reporting'; + call name => 'test_reporting'; call pass => T(); call subevents => array { event Ok => sub { @@ -347,10 +347,10 @@ test_events_is( }; }; event Note => sub { - call message => 'Subtest: test_this_should_be_run'; + call message => 'test_this_should_be_run'; }; event Subtest => sub { - call name => 'Subtest: test_this_should_be_run'; + call name => 'test_this_should_be_run'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/parameterizedlib/TestsFor/Empty.pm b/t/parameterizedlib/TestsFor/Empty.pm index 84f6858..9d034af 100644 --- a/t/parameterizedlib/TestsFor/Empty.pm +++ b/t/parameterizedlib/TestsFor/Empty.pm @@ -21,10 +21,10 @@ sub test_one_set { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Empty'; + call message => 'TestsFor::Empty'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Empty'; + call name => 'TestsFor::Empty'; call pass => T(); call subevents => array { filter_items { diff --git a/t/parameterizedlib/TestsFor/Parameterized.pm b/t/parameterizedlib/TestsFor/Parameterized.pm index 5447195..512afac 100644 --- a/t/parameterizedlib/TestsFor/Parameterized.pm +++ b/t/parameterizedlib/TestsFor/Parameterized.pm @@ -34,10 +34,10 @@ sub test_one_set { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Parameterized'; + call message => 'TestsFor::Parameterized'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Parameterized'; + call name => 'TestsFor::Parameterized'; call pass => T(); call subevents => array { filter_items { @@ -50,20 +50,20 @@ sub expected_test_events { call max => 2; }; event Note => sub { - call message => 'Subtest: TestsFor::Parameterized with bar'; + call message => 'TestsFor::Parameterized with bar'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Parameterized with bar'; + call name => 'TestsFor::Parameterized with bar'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; event Note => sub { - call message => 'Subtest: test_one_set'; + call message => 'test_one_set'; }; event Subtest => sub { - call name => 'Subtest: test_one_set'; + call name => 'test_one_set'; call pass => T(); call subevents => array { event Ok => sub { @@ -80,20 +80,20 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: TestsFor::Parameterized with foo'; + call message => 'TestsFor::Parameterized with foo'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Parameterized with foo'; + call name => 'TestsFor::Parameterized with foo'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; event Note => sub { - call message => 'Subtest: test_one_set'; + call message => 'test_one_set'; }; event Subtest => sub { - call name => 'Subtest: test_one_set'; + call name => 'test_one_set'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/planlib/TestsFor/Attributes.pm b/t/planlib/TestsFor/Attributes.pm index 7556a0a..942406e 100644 --- a/t/planlib/TestsFor/Attributes.pm +++ b/t/planlib/TestsFor/Attributes.pm @@ -24,20 +24,20 @@ sub this_is_a_test_method_because_of_the_attribute : Tests(3) { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Attributes'; + call message => 'TestsFor::Attributes'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Attributes'; + call name => 'TestsFor::Attributes'; call pass => T(); call subevents => array { event Plan => sub { call max => 4; }; event Note => sub { - call message => 'Subtest: test_just_one_test'; + call message => 'test_just_one_test'; }; event Subtest => sub { - call name => 'Subtest: test_just_one_test'; + call name => 'test_just_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -51,10 +51,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_more_than_one_test'; + call message => 'test_more_than_one_test'; }; event Subtest => sub { - call name => 'Subtest: test_more_than_one_test'; + call name => 'test_more_than_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -72,10 +72,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_with_attribute_but_no_plan'; + call message => 'test_with_attribute_but_no_plan'; }; event Subtest => sub { - call name => 'Subtest: test_with_attribute_but_no_plan'; + call name => 'test_with_attribute_but_no_plan'; call pass => T(); call subevents => array { event Ok => sub { @@ -106,12 +106,11 @@ sub expected_test_events { }; event Note => sub { call message => - 'Subtest: this_is_a_test_method_because_of_the_attribute'; + 'this_is_a_test_method_because_of_the_attribute'; }; event Subtest => sub { - call name => - 'Subtest: this_is_a_test_method_because_of_the_attribute'; - call pass => T(); + call name => 'this_is_a_test_method_because_of_the_attribute'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); diff --git a/t/planlib/TestsFor/Attributes/Subclass.pm b/t/planlib/TestsFor/Attributes/Subclass.pm index 4b679e3..cb2ff67 100644 --- a/t/planlib/TestsFor/Attributes/Subclass.pm +++ b/t/planlib/TestsFor/Attributes/Subclass.pm @@ -29,20 +29,20 @@ sub this_is_a_test_method_because_of_the_attribute : Tests { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Attributes::Subclass'; + call message => 'TestsFor::Attributes::Subclass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Attributes::Subclass'; + call name => 'TestsFor::Attributes::Subclass'; call pass => T(); call subevents => array { event Plan => sub { call max => 4; }; event Note => sub { - call message => 'Subtest: test_just_one_test'; + call message => 'test_just_one_test'; }; event Subtest => sub { - call name => 'Subtest: test_just_one_test'; + call name => 'test_just_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -56,10 +56,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_more_than_one_test'; + call message => 'test_more_than_one_test'; }; event Subtest => sub { - call name => 'Subtest: test_more_than_one_test'; + call name => 'test_more_than_one_test'; call pass => T(); call subevents => array { event Ok => sub { @@ -81,10 +81,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_with_attribute_but_no_plan'; + call message => 'test_with_attribute_but_no_plan'; }; event Subtest => sub { - call name => 'Subtest: test_with_attribute_but_no_plan'; + call name => 'test_with_attribute_but_no_plan'; call pass => T(); call subevents => array { event Ok => sub { @@ -107,12 +107,11 @@ sub expected_test_events { }; event Note => sub { call message => - 'Subtest: this_is_a_test_method_because_of_the_attribute'; + 'this_is_a_test_method_because_of_the_attribute'; }; event Subtest => sub { - call name => - 'Subtest: this_is_a_test_method_because_of_the_attribute'; - call pass => T(); + call name => 'this_is_a_test_method_because_of_the_attribute'; + call pass => T(); call subevents => array { event Ok => sub { call pass => T(); diff --git a/t/planlib/TestsFor/Person.pm b/t/planlib/TestsFor/Person.pm index 2baf4ef..e2f26a3 100644 --- a/t/planlib/TestsFor/Person.pm +++ b/t/planlib/TestsFor/Person.pm @@ -30,20 +30,20 @@ sub test_person { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Person'; + call message => 'TestsFor::Person'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Person'; + call name => 'TestsFor::Person'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; event Note => sub { - call message => 'Subtest: test_person'; + call message => 'test_person'; }; event Subtest => sub { - call name => 'Subtest: test_person'; + call name => 'test_person'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/planlib/TestsFor/Person/Employee.pm b/t/planlib/TestsFor/Person/Employee.pm index 92e22af..96d4e2a 100644 --- a/t/planlib/TestsFor/Person/Employee.pm +++ b/t/planlib/TestsFor/Person/Employee.pm @@ -19,20 +19,20 @@ BEGIN { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Person::Employee'; + call message => 'TestsFor::Person::Employee'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Person::Employee'; + call name => 'TestsFor::Person::Employee'; call pass => T(); call subevents => array { event Plan => sub { call max => 1; }; event Note => sub { - call message => 'Subtest: test_person'; + call message => 'test_person'; }; event Subtest => sub { - call name => 'Subtest: test_person'; + call name => 'test_person'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/skiplib/TestsFor/SkipAll.pm b/t/skiplib/TestsFor/SkipAll.pm index d6c7e39..c79cc29 100644 --- a/t/skiplib/TestsFor/SkipAll.pm +++ b/t/skiplib/TestsFor/SkipAll.pm @@ -30,10 +30,10 @@ sub test_this_baby { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::SkipAll'; + call message => 'TestsFor::SkipAll'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::SkipAll'; + call name => 'TestsFor::SkipAll'; call pass => T(); call subevents => array { filter_items { diff --git a/t/skiplib/TestsFor/SkipSomeMethods.pm b/t/skiplib/TestsFor/SkipSomeMethods.pm index 894eab3..beb20ac 100644 --- a/t/skiplib/TestsFor/SkipSomeMethods.pm +++ b/t/skiplib/TestsFor/SkipSomeMethods.pm @@ -34,10 +34,10 @@ sub test_again { ok 1, 'in test_again' } sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::SkipSomeMethods'; + call message => 'TestsFor::SkipSomeMethods'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::SkipSomeMethods'; + call name => 'TestsFor::SkipSomeMethods'; call pass => T(); call subevents => array { filter_items { @@ -50,10 +50,10 @@ sub expected_test_events { call max => 3; }; event Note => sub { - call message => 'Subtest: test_again'; + call message => 'test_again'; }; event Subtest => sub { - call name => 'Subtest: test_again'; + call name => 'test_again'; call pass => T(); call subevents => array { event Ok => sub { @@ -70,10 +70,10 @@ sub expected_test_events { call message => 'in teardown'; }; event Note => sub { - call message => 'Subtest: test_me'; + call message => 'test_me'; }; event Subtest => sub { - call name => 'Subtest: test_me'; + call name => 'test_me'; call pass => T(); call subevents => array { event Plan => sub { @@ -86,10 +86,10 @@ sub expected_test_events { }; }; event Note => sub { - call message => 'Subtest: test_this_baby'; + call message => 'test_this_baby'; }; event Subtest => sub { - call name => 'Subtest: test_this_baby'; + call name => 'test_this_baby'; call pass => T(); call subevents => array { event Ok => sub { diff --git a/t/test_control_methods.t b/t/test_control_methods.t index d1dac30..eab3719 100644 --- a/t/test_control_methods.t +++ b/t/test_control_methods.t @@ -48,10 +48,10 @@ subtest_streamed( }; TestsFor::Basic->expected_test_events; event Note => sub { - call message => 'Subtest: TestsFor::Basic::Subclass'; + call message => 'TestsFor::Basic::Subclass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic::Subclass'; + call name => 'TestsFor::Basic::Subclass'; call pass => F(); call subevents => array { event Ok => sub { @@ -75,7 +75,7 @@ subtest_streamed( }; event Diag => sub { call message => match - qr/\QFailed test 'Subtest: TestsFor::Basic::Subclass'\E.+/s; + qr/\QFailed test 'TestsFor::Basic::Subclass'\E.+/s; }; end(); } @@ -99,10 +99,10 @@ subtest_streamed( }; TestsFor::Basic->expected_test_events; event Note => sub { - call message => 'Subtest: TestsFor::Basic::Subclass'; + call message => 'TestsFor::Basic::Subclass'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Basic::Subclass'; + call name => 'TestsFor::Basic::Subclass'; call pass => F(); call subevents => array { event Ok => sub { @@ -130,7 +130,7 @@ subtest_streamed( }; event Diag => sub { call message => match - qr/\QFailed test 'Subtest: TestsFor::Basic::Subclass'\E.+/s; + qr/\QFailed test 'TestsFor::Basic::Subclass'\E.+/s; }; end(); } diff --git a/t/todolib/TestsFor/Todo.pm b/t/todolib/TestsFor/Todo.pm index 128a779..1e6ad23 100644 --- a/t/todolib/TestsFor/Todo.pm +++ b/t/todolib/TestsFor/Todo.pm @@ -48,10 +48,10 @@ sub test_todo_die2 { sub expected_test_events { event Note => sub { - call message => 'Subtest: TestsFor::Todo'; + call message => 'TestsFor::Todo'; }; event Subtest => sub { - call name => 'Subtest: TestsFor::Todo'; + call name => 'TestsFor::Todo'; call pass => F(); call effective_pass => F(); @@ -68,10 +68,10 @@ sub expected_test_events { }; event Note => sub { - call message => 'Subtest: test_todo'; + call message => 'test_todo'; }; event Subtest => sub { - call name => 'Subtest: test_todo'; + call name => 'test_todo'; call pass => T(); call effective_pass => T(); @@ -106,10 +106,10 @@ sub expected_test_events { }; event Note => sub { - call message => 'Subtest: test_todo_die1'; + call message => 'test_todo_die1'; }; event Subtest => sub { - call name => 'Subtest: test_todo_die1'; + call name => 'test_todo_die1'; call pass => F(); call effective_pass => F(); @@ -132,10 +132,10 @@ sub expected_test_events { }; event Note => sub { - call message => 'Subtest: test_todo_die2'; + call message => 'test_todo_die2'; }; event Subtest => sub { - call name => 'Subtest: test_todo_die2'; + call name => 'test_todo_die2'; call pass => F(); call effective_pass => F();