Blame README

Packit e6feea
NAME
Packit e6feea
    Test::FailWarnings - Add test failures if warnings are caught
Packit e6feea
Packit e6feea
VERSION
Packit e6feea
    version 0.008
Packit e6feea
Packit e6feea
SYNOPSIS
Packit e6feea
    Test file:
Packit e6feea
Packit e6feea
        use strict;
Packit e6feea
        use warnings;
Packit e6feea
        use Test::More;
Packit e6feea
        use Test::FailWarnings;
Packit e6feea
Packit e6feea
        ok( 1, "first test" );
Packit e6feea
        ok( 1 + "lkadjaks", "add non-numeric" );
Packit e6feea
Packit e6feea
        done_testing;
Packit e6feea
Packit e6feea
    Output:
Packit e6feea
Packit e6feea
        ok 1 - first test
Packit e6feea
        not ok 2 - Test::FailWarnings should catch no warnings
Packit e6feea
        #   Failed test 'Test::FailWarnings should catch no warnings'
Packit e6feea
        #   at t/bin/main-warn.pl line 7.
Packit e6feea
        # Warning was 'Argument "lkadjaks" isn't numeric in addition (+) at t/bin/main-warn.pl line 7.'
Packit e6feea
        ok 3 - add non-numeric
Packit e6feea
        1..3
Packit e6feea
        # Looks like you failed 1 test of 3.
Packit e6feea
Packit e6feea
DESCRIPTION
Packit e6feea
    This module hooks $SIG{__WARN__} and converts warnings to Test::More
Packit e6feea
    "fail()" calls. It is designed to be used with "done_testing", when you
Packit e6feea
    don't need to know the test count in advance.
Packit e6feea
Packit e6feea
    Just as with Test::NoWarnings, this does not catch warnings if other
Packit e6feea
    things localize $SIG{__WARN__}, as this is designed to catch *unhandled*
Packit e6feea
    warnings.
Packit e6feea
Packit e6feea
USAGE
Packit e6feea
  Overriding $SIG{__WARN__}
Packit e6feea
    On "import", $SIG{__WARN__} is replaced with
Packit e6feea
    "Test::FailWarnings::handler".
Packit e6feea
Packit e6feea
        use Test::FailWarnings;  # global
Packit e6feea
Packit e6feea
    If you don't want global replacement, require the module instead and
Packit e6feea
    localize in whatever scope you want.
Packit e6feea
Packit e6feea
        require Test::FailWarnings;
Packit e6feea
Packit e6feea
        {
Packit e6feea
            local $SIG{__WARN__} = \&Test::FailWarnings::handler;
Packit e6feea
            # ... warnings will issue fail() here
Packit e6feea
        }
Packit e6feea
Packit e6feea
    When the handler reports on the source of the warning, it will look past
Packit e6feea
    any calling packages starting with "Carp" or "warnings" to try to detect
Packit e6feea
    the real origin of the warning.
Packit e6feea
Packit e6feea
  Allowing warnings from dependencies
Packit e6feea
    If you want to ignore failures from outside your own code, you can set
Packit e6feea
    $Test::FailWarnings::ALLOW_DEPS to a true value. You can do that on the
Packit e6feea
    "use" line with "-allow_deps".
Packit e6feea
Packit e6feea
        use Test::FailWarnings -allow_deps => 1;
Packit e6feea
Packit e6feea
    When true, warnings will only be thrown if they appear to originate from
Packit e6feea
    a filename matching "qr/^(?:t|xt|lib|blib)/"
Packit e6feea
Packit e6feea
  Allowing warnings from specific modules
Packit e6feea
    If you want to white-list specific modules only, you can add their
Packit e6feea
    package names to @Test::NoWarnings::ALLOW_FROM. You can do that on the
Packit e6feea
    "use" line with "-allow_from".
Packit e6feea
Packit e6feea
        use Test::FailWarnings -allow_from => [ qw/Annoying::Module/ ];
Packit e6feea
Packit e6feea
SEE ALSO
Packit e6feea
    *   Test::NoWarnings -- catches warnings and reports in an "END" block.
Packit e6feea
        Not (yet) friendly with "done_testing".
Packit e6feea
Packit e6feea
    *   Test::Warnings -- a replacement for Test::NoWarnings that works with
Packit e6feea
        done_testing
Packit e6feea
Packit e6feea
    *   Test::Warn -- test for warnings without triggering failures from
Packit e6feea
        this modules
Packit e6feea
Packit e6feea
SUPPORT
Packit e6feea
  Bugs / Feature Requests
Packit e6feea
    Please report any bugs or feature requests through the issue tracker at
Packit e6feea
    <https://github.com/dagolden/Test-FailWarnings/issues>. You will be
Packit e6feea
    notified automatically of any progress on your issue.
Packit e6feea
Packit e6feea
  Source Code
Packit e6feea
    This is open source software. The code repository is available for
Packit e6feea
    public review and contribution under the terms of the license.
Packit e6feea
Packit e6feea
    <https://github.com/dagolden/Test-FailWarnings>
Packit e6feea
Packit e6feea
      git clone https://github.com/dagolden/Test-FailWarnings.git
Packit e6feea
Packit e6feea
AUTHOR
Packit e6feea
    David Golden <dagolden@cpan.org>
Packit e6feea
Packit e6feea
COPYRIGHT AND LICENSE
Packit e6feea
    This software is Copyright (c) 2013 by David Golden.
Packit e6feea
Packit e6feea
    This is free software, licensed under:
Packit e6feea
Packit e6feea
      The Apache License, Version 2.0, January 2004
Packit e6feea