Test2::Require3p
Base class and documentation for skip-unless type test packages.
Overview
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
package Test2::Require::Widget;use strict;use warnings;use base 'Test2::Require';sub HAVE_WIDGETS { ... };sub skip {my $class = shift;my @import_args = @_;if (HAVE_WIDGETS()) {# We have widgets, do not skipreturn undef;}else {# No widgets, skip the testreturn "Skipped because there are no widgets" unless HAVE_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:
package Test2::Require::Widget;use strict;use warnings;use Test2::API qw/context/;sub HAVE_WIDGETS { ... };sub import {my $class = shift;# Have widgets, should run.return if HAVE_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 https://github.com/Test-More/test-more/.
Maintainers
- Chad Granum <[email protected]>
Releases
5 releases since OpenBSD 7.7; the text changed 2 times.