| Test2::Require(3pm) - phpMan
Test2::Require(3pm) User Contributed Perl Documentation Test2::Require(3pm)
NAME
Test2::Require - Base class and documentation for skip-unless type test packages.
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
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 skip
return undef;
}
else {
# No widgets, skip the test
return "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 event
my $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/Test2-Suite/.
MAINTAINERS
Chad Granum <exodist AT cpan.org>
AUTHORS
Chad Granum <exodist AT cpan.org>
COPYRIGHT
Copyright 2018 Chad Granum <exodist AT cpan.org>.
This program is free software; you can redistribute it and/or modify it under the same
terms as Perl itself.
See http://dev.perl.org/licenses/
perl v5.20.2 2023-10-25 Test2::Require(3pm)
|