in reply to Test script requirements

Or should I condition the tests on the presence of the module?

Yes, that's the way to go. If that additional module is not needed for normal operation and building your module, it shouldn't be a requirement.

And make sure to document the test requirement to enable menaingful testing.

Replies are listed 'Best First'.
Re^2: Test script requirements
by Sixtease (Friar) on Mar 07, 2008 at 10:33 UTC

    In my particular case, the module in question is List::MoreUtils, which, I gather, is a core module. I didn't care about it because I thought it's always present. But I'm getting mails from CPAN testers that the tests failed on the absence of List::MoreUtils. I assumed that the testers provide only those modules which are declared as required. If I condition the tests on them, then they will be skipped and the tests will not be run by the testers, which would deteriorate the benefit of the testers' work.

    Maybe I'm assuming wrongly and the tester's test failed because they really didn't have List::MoreUtils?

    use strict; use warnings; print "Just Another Perl Hacker\n";
      List::MoreUtils is not a core module.

      You might want to check out corelist, which is a command line interface to Module::CoreList. It tells you if a module is in core, and if so, from which perl version on.

      BTW it doesn't hurt to add core modules to your depency list, that way you're on the safe side, even if that module should be removed from core in future (unlikely, but not impossible).

        You should put core modules in your pre-requisite list because many modules that are now in core have not always been, and so people using older versions of perl will need to download them from the CPAN.