Test::Module::Used - Test required module is really used and vice versa bitween lib/t and META.yml
#!/usr/bin/perl -w use strict; use warnings; use Test::Module::Used; my $used = Test::Module::Used->new( exclude_in_testdir => ['Test::Module::Used', 'My::Module'], ); $used->ok;
Test dependency between module and META.yml.
This module reads META.yml and get build_requires and requires. It compares required module is really used and used module is really required.
create new instance
all parameters are passed by hash-style, and optional.
in ordinary use.
my $used = Test::Module::Used->new( exclude_in_testdir => ['Test::Module::Used', 'My::Module'], );
use exclude_in_testdir. If this parameter is specified. Test::Module::Used ignore modules used in testdir.
all parameters are as follows.(specified values are default)
my $used = Test::Module::Used->new( test_dir => ['t'], # directory(ies) which contains test scripts. module_dir => ['lib'], # directory(ies) which contains modules. meta_file => 'META.yml', # META.yml (contains module requirement information) perl_version => '5.008', # expected perl version which is used for ignore core-modules in testing exclude_in_testdir => [], # ignored module(s) for test even if it is used. exclude_in_moduledir => [], # ignored module(s) for your module(lib) even if it is used. exclude_in_build_requires => [], # ignored module(s) even if it is written in build_requires of META.yml. exclude_in_requires => [], # ignored module(s) even if it is written in requires of META.yml. );
if your module source contains use 5.XXX statement, perl_version passed in constructor is ignored (prior to use version in module source code).
check used module is ok.
my $used = Test::Module::Used->new( exclude_in_testdir => ['Test::Module::Used', 'My::Module'], ); $used->ok;
First, This module reads META.yml and get build_requires and requires. Next, reads module directory (by default lib) and test directory(by default t), and compare required module is really used and used module is really required. If all these requirement information is OK, test will success.
Takuya Tsuchida <tsucchi@cpan.org>
Test::Dependencies has almost same feature.
http://github.com/tsucchi/Test-Module-Used
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Test::Module::Used, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Module::Used
CPAN shell
perl -MCPAN -e shell install Test::Module::Used
For more information on module installation, please visit the detailed CPAN module installation guide.