1Test::DiagINC(3)      User Contributed Perl Documentation     Test::DiagINC(3)
2
3
4

NAME

6       Test::DiagINC - List modules and versions loaded if tests fail
7

VERSION

9       version 0.008
10

SYNOPSIS

12           # preferably load before anything else
13           use if $ENV{AUTOMATED_TESTING}, 'Test::DiagINC';
14           use Test::More;
15

DESCRIPTION

17       Assuming you shipped your module to CPAN with working tests, test
18       failures from CPAN Testers <http://www.cpantesters.org/> might be due
19       to platform issues, Perl version issues or problems with dependencies.
20       This module helps you diagnose deep dependency problems by showing you
21       exactly what modules and versions were loaded during a test run.
22
23       When this module is loaded, it sets up an "END" block that will take
24       action if the program is about to exit with a non-zero exit code or if
25       $test_builder->is_passing is false by the time the "END" block is
26       reached.  If that happens, this module prints out the names and version
27       numbers of non-local modules appearing in %INC at the end of the test.
28
29       For example:
30
31           $ perl -MTest::DiagINC -MTest::More -e 'fail("meh"); done_testing'
32           not ok 1 - meh
33           #   Failed test 'meh'
34           #   at -e line 1.
35           1..1
36           # Looks like you failed 1 test of 1.
37           # Listing modules and versions from %INC
38           #   5.018002 Config
39           #       5.68 Exporter
40           #       5.68 Exporter::Heavy
41           #       1.07 PerlIO
42           #       0.98 Test::Builder
43           #       0.98 Test::Builder::Module
44           #      0.003 Test::DiagINC
45           #       0.98 Test::More
46           #       1.22 overload
47           #       0.02 overloading
48           #       1.07 strict
49           #       1.03 vars
50           #       1.18 warnings
51           #       1.02 warnings::register
52
53       This module deliberately does not load any other modules during
54       runtime, instead delaying all loads until it needs to generate a
55       failure report in its "END" block. The only exception is loading strict
56       and warnings for self-check if and only if "RELEASE_TESTING" is true.
57       Therefore an empty invocation will look like this:
58
59           $ perl -MTest::DiagINC -e 'exit(1)'
60           # Listing modules from %INC
61           #  0.003 Test::DiagINC
62
63       NOTE:  Because this module uses an "END" block, it is a good idea to
64       load it as early as possible, so the "END" block it installs will
65       execute as late as possible (see perlmod for details on how this
66       works). While this module does employ some cleverness to work around
67       load order, it is still a heuristic and is no substitute to loading
68       this module early. A notable side-effect is when a module is loaded in
69       an "END" block executing after the one installed by this library: such
70       modules will be "invisible" to us and will not be reported as part of
71       the diagnostic report.
72
73       Modules that appear to be sourced from below the current directory when
74       "Test::DiagINC" was loaded will be excluded from the report (e.g.
75       excludes local modules from "./", "lib/", "t/lib", and so on).
76
77       The heuristic of searching %INC for loaded modules may fail if the
78       module path loaded does not map to a package within the module file.
79
80       If "Test::More" is loaded, the output will go via the "diag" function.
81       Otherwise, it will just be sent to STDERR.
82

SUPPORT

84   Bugs / Feature Requests
85       Please report any bugs or feature requests through the issue tracker at
86       <https://github.com/dagolden/Test-DiagINC/issues>.  You will be
87       notified automatically of any progress on your issue.
88
89   Source Code
90       This is open source software.  The code repository is available for
91       public review and contribution under the terms of the license.
92
93       <https://github.com/dagolden/Test-DiagINC>
94
95         git clone https://github.com/dagolden/Test-DiagINC.git
96

AUTHOR

98       David Golden <dagolden@cpan.org>
99

CONTRIBUTORS

101       •   Peter Rabbitson <ribasushi@cpan.org>
102
103       •   Roy Ivy III <rivy.dev@gmail.com>
104
106       This software is Copyright (c) 2014 by David Golden.
107
108       This is free software, licensed under:
109
110         The Apache License, Version 2.0, January 2004
111
112
113
114perl v5.36.0                      2022-07-22                  Test::DiagINC(3)
Impressum