logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Test::Dependencies - Ensure that the dependency listing is complete

Authors

       •   Jesse Vincent "<jesse at bestpractical.com>"

       •   Alex Vandiver "<alexmv at bestpractical.com>"

       •   Zev Benjamin "<zev at cpan.org>"

       •   Erik Huelsmann "<ehuels at gmail.com>"

Bugs

       •   Test::Dependencies does not track module version requirements.

       Please report your bugs on GitHub:

          L<https://github.com/ehuelsmann/perl-Test-Dependencies/issues>

Description

       Makes sure that all of the modules that are 'use'd are listed in the Makefile.PL as dependencies.

Exported Functions

ok_dependencies($meta,$files,$phases,$features,%options)
        $meta is a CPAN::Meta object
        $files is an arrayref with files to be scanned

       %optionskeys

       phases
           This  is an arrayref holding one or more names of phases as defined by CPAN::Meta::Spec, or undef for
           all

       features
           This is an arrayref holding zero or more names of features, or undef for all

       ignores
           This is a arrayref listing the names of modules (and their sub-namespaces) for which no errors are to
           be reported.

   ok_dependencies()Deprecated. Legacy invocation to be removed. In previous versions, this function would  scan  the  entire
       bin/,  lib/  and  t/  subtrees,  with  the exception of a few sub-directories known to be used by version
       control systems.

       This behaviour has been changed: as of 0.20, Find::File::Rule::Perl is being  used  to  find  Perl  files
       (*.pl, *.pm, *.t and those starting with a shebang line referring to perl).

Name

       Test::Dependencies - Ensure that the dependency listing is complete

Options

DEPRECATED You can pass options to the module via the 'use' line.  These options will be moved to the
       ok_dependencies() function.  The available options are:

       forward_compatible
           When  specified  and  true,  stops  the  module  from outputting a plan, which is the default mode of
           operation when the module becomes 1.0.

       exclude
           Specifies the list of namespaces for which it is ok not to have specified dependencies.

       style
           DEPRECATED

           There used to be the option of specifying a style; the  heavy  style  depended  on  B::PerlReq.  This
           module stopped working somewhere around Perl 5.20. Specifying a style no longer has any effect.

Support

       You can find documentation for this module with the perldoc command.

           perldoc Test::Dependencies

       You can also look for information at:

       •   CPAN Ratings

           <http://cpanratings.perl.org/d/Test-Dependencies>

       •   Search CPAN

           <http://search.cpan.org/dist/Test-Dependencies>

Synopsis

       In your t/00-dependencies.t:

           use CPAN::Meta;  # or CPAN::Meta::cpanfile
           use File::Find::Rule::Perl;

           use Test::More;
           use Test::Dependencies '0.28' forward_compatible => 1;

           my $meta = CPAN::Meta->load_file('META.json'); # or META.yml
           plan skip_all => 'No META.json' if ! $meta;

           my @files = File::Find::Rule::Perl->perl_files->in('./lib', './bin');
           ok_dependencies($meta, \@files, [qw/runtime configure build test/],
                           undef, # all features in the cpanfile
                           ignores => [ qw/ Your::Namespace Some::Other::Namespace / ]
           );

           done_testing;

Version

       Version 0.34

See Also