pboyd / MooseX-Test-Role

Test functions for Moose roles
2 stars 5 forks source link

Hidden test dependency on Class::Method::Modifiers #5

Closed mschout closed 7 years ago

mschout commented 7 years ago

MooseX::Test::Role's tests have a hidden dependency on Class::Method::Modifiers in the test suite. This is via Role::Tiny, which does not "require", but rather, "recommends" Class::Method::Modifiers in META.json as a runtime recommends dependency.

As a result, installing Role::Tiny via cpanm does not install Class::Method::Modifiers.

This causes the tests in MooseX::Test::Role to fail like the following if Class::Method::Modifiers was not explicitly installed:

t/05_consuming_object.t .. 1/4     # No tests run!

#   Failed test 'No tests run for subtest "Role::Tiny"'
#   at t/05_consuming_object.t line 16.
Can't locate Class/Method/Modifiers.pm in @INC (you may need to install the Class::Method::Modifiers module) (@INC contains: /Users/mschout/Sync/MooseX-Test-Role/MooseX-Test-Role-0.07/t /Users/mschout/Sync/MooseX-Test-Role/MooseX-Test-Role-0.07/blib/lib /Users/mschout/Sync/MooseX-Test-Role/MooseX-Test-Role-0.07/blib/arch /Users/mschout/build/lib/perl5/site_perl/5.24.1/darwin-2level /Users/mschout/build/lib/perl5/site_perl/5.24.1 /Users/mschout/build/lib/perl5/5.24.1/darwin-2level /Users/mschout/build/lib/perl5/5.24.1 .) at /Users/mschout/build/lib/perl5/site_perl/5.24.1/Role/Tiny.pm line 426.
# Looks like your test exited with 255 just after 3.
t/05_consuming_object.t .. Dubious, test returned 255 (wstat 65280, 0xff00)

Solution is to add a TestRequires dependency on Class::Method::Modifiers

pboyd commented 7 years ago

This is a problem because the test uses an around modifier. It's only a couple checks that actually use that, so I'll skip those when Role::Tiny is installed without Class::Method::Modifiers.

mschout commented 7 years ago

Thanks for the quick fix!