Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
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":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (2)
As of 2024-04-19 20:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found