In a perl module, I'd like to have two tests that are almost the same but differ a little bit in a setting. These should be ran independently (in two different perl interpreter invocations) because I'm changing the global state of the interpreter in a way that would be hard to undo, and I would not like the tests to interfere with each other. Also, even if either test fails completely or is skipped (eg. because some dependency is missing), the other should still be ran normally. If possible, I'd like the tests to work no matter how you invoke them, eg. make test (the makefile is generated by ExtUtils::MakeMaker), prove, or running the *.t files with perl directly.

Is there a best practice to do this kind of code sharing among two tests?

Update: mst claims the standard approach is to put the libraries for tests in the t/lib directory, and says that you always run tests with the working directory being the parent of t, so if you add use lib t/lib; to the tests that should find this modules.


In reply to Share code among tests by ambrus

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.