Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

RFC: Confirming module being tested

by RonW (Parson)
on Jul 31, 2017 at 23:33 UTC ( #1196388=perlmeditation: print w/replies, xml ) Need Help??

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()

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://1196388]
Approved by Athanasius
Front-paged by Arunbear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2019-05-23 02:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you enjoy 3D movies?



    Results (142 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!