Perl Diver 2.31
Main Environment Variables Perl Default Values Perl Config - Summary Perl Config - Full Installed Modules List Directory uptime Docs

Module Documentation
Details and documentation about a specific module, including version and documentation (if available). Note that while links to perldoc.com and search.cpan.org are provided, the module may be part of a larger distribution. If you reach a File Not Found page on either site, please try the parent module.

Test2::Require

Name Test2::Require
Version 0.000144
Located at /usr/local/share/perl5
File /usr/local/share/perl5/Test2/Require.pm
Is Core No
Search CPAN for this module Test2::Require
Documentation Test2::Require
Module Details Test2::Require


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 the Test2::Require manpage 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 the Test2::Require manpage 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 the Test2::Require manpage 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


AUTHORS

Chad Granum <exodist@cpan.org>Chad Granum


COPYRIGHT

Copyright 2018 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.

See http://dev.perl.org/licenses/

Perl Diver brought to you by ScriptSolutions.com © 1997- 2024