Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Test2::Require(3)     User Contributed Perl Documentation    Test2::Require(3)

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@cpan.org>

AUTHORS
       Chad Granum <exodist@cpan.org>

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 v5.32.0			  2020-08-17		     Test2::Require(3)

NAME | DESCRIPTION | HOW DO I WRITE A 'REQUIRE' MODULE? | SOURCE | MAINTAINERS | AUTHORS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Test2::Require&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help