The docs for Test::Class suggest putting your test modules under t/lib. I understand that this will prevent them from being indexed by PAUSE, which is good. My concern arises over including this directory in my test script, t/main.t (...)
This works fine on my system, but I'm worried that the use lib might break on other OSes, especially with the hardcoded relative path. Is there an accepted standard way of doing this which is better?

Dear friedo

Your attention to portability, as well as desire to properly bundle test code with your distribution, are indeed very good attitudes.

That kind of use lib statements would work only when the testing is done from the build directory, which IMHO is what happens almost all of the time. After all, this is intended to run before the code is installed, so there is no standard place to point to anyway.

That said, I would use the fragment of very untested code below, to construct a hopefully more portable alternative by using File::Spec...

#!/usr/bin/perl # t/main.t -- launch all tests from here use strict; use warnings; use File::Spec; use lib File::Spec::catdir(qw/. t lib/); # The rest of your code goes here...

Note that personally, I consider this a bit of overkill :)

Update: Thanks and ++ to adrianh for pointing out that my overkill was already thought by the authors of lib :)

Best regards

-lem, but some call me fokat


In reply to Re: Test::Class and use lib by fokat
in thread Test::Class and use lib by friedo

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.