NAME

DESCRIPTION

Test2::Require::* packages are packages you load to ensure your test file is skipped unless a specific requirement is met. Modules in this namespace may subclass Test2::Require if they wish, but it is not strictly necessary to do so.

HOW DO I WRITE A 'REQUIRE' MODULE?

AS A SUBCLASS

packageTest2::Require::Widget;usestrict;usewarnings;usebase'Test2::Require';sub HAVE_WIDGETS {...};sub skip {my$class=shift;my@import_args=@_;if(HAVE_WIDGETS()){# We have widgets, do not skipreturnundef;}else{# No widgets, skip the testreturn"Skipped because there are no widgets"unlessHAVE_WIDGETS();}}1;

A subclass of Test2::Require simply needs to implement a skip() method. This method will receive all import arguments. This method should return undef if the test should run, and should return a reason for skipping if the test should be skipped.

STAND-ALONE

If you do not wish to subclass Test2::Require then you should write an import() method:

packageTest2::Require::Widget;usestrict;usewarnings;useTest2::APIqw/context/;sub HAVE_WIDGETS {...};sub import {my$class=shift;# Have widgets, should run.returnifHAVE_WIDGETS();# Use the context object to create the eventmy$ctx=context();$ctx->plan(0,SKIP=>"Skipped because there are no widgets");$ctx->release;}1;

SOURCE

The source code repository for Test2-Suite can be found at http://github.com/Test-More/Test2-Suite/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright 2017 Chad Granum <exodist@cpan.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.