Test::Is(3) Skip test in a declarative way, following the Lancaster Consensus


version 20140823.1


I want that this runs only on interactive environments:

use Test::Is 'interactive';

This test is an extended test: it takes much time to run or may have special running conditions that may inconvenience a user that just want to install the module:

    use Test::Is 'extended';


    use Test::Is 'interactive', 'extended';

This test is only for perl 5.10+:

    use Test::Is 'perl v5.10';
    use feature 'say';


This module is a simple way of following the specifications of the environment <https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md#environment-variables-for-testing-contexts> variables available for Perl tests as defined as one of the "Lancaster Consensus <https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md>" at Perl QA Hackathon 2013. Those variables ("NONINTERACTIVE_TESTING", "EXTENDED_TESTING") define which tests should be skipped.

If the environment does not match what the author of the test expected, the complete test is skipped (in the same way as "use Test::More skip_all => ...").

As an author, you can also expect that you will automatically benefit of later evolutions of this specification just by upgrading the module.

As a CPAN toolchain author (CPAN client, smoker...) you may want to ensure at runtime that the installed version of this module matches the environment you set yourself.


Olivier Mengué, <mailto:[email protected]>


Copyright © 2013 Olivier Mengué.

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