http://www.perlmonks.org?node_id=1196388

In #p5p finds your lack of failing tests disturbing, there was discussion about Perl no longer including the current directory in @INC and how this would affect modules that load other files. In the referenced post, http://www.nntp.perl.org/group/perl.perl5.porters/2017/03/msg243722.html, the author, Mr Fredric, seems concerned that testing environments, such as Test::More may not be working correctly.

From that, it occurred to me that it might be wise for tests to confirm that the module being tested is the one the test expects.

Today, the noderep ticker "reminded" me about this concern, so I wrote a first draft of a version confirmation test:

use 5.006; use strict; use warnings FATAL => 'all'; use Parse::CPAN::Meta; use File::Spec::Functions qw(catfile); use Test::More tests => 2; BEGIN { diag( "Testing My::Module" ); use_ok( 'My::Module' ); } my $loaded_ver = $My::Module::VERSION; my @metafiles = qw( META.json META.yaml ); my $md; for (@metafiles) { my $mf = catfile('..', $_); next unless (-f $mf); $md = Parse::CPAN::Meta->load_file($mf); next unless (defined $md); if ($md->{version} == $loaded_ver) { pass('version check'); } else { BAIL_OUT('Expected ver ' . $md->{version} . ", got ver $loaded +_ver"); } } BAIL_OUT('Missing META.json and META.yaml') unless (defined $md);

Edit: Corrected typo in title.

Update: Use catfile()