ambrus has asked for the wisdom of the Perl Monks concerning the following question:
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.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Share code among tests
by ikegami (Patriarch) on May 08, 2011 at 17:16 UTC | |
|
Re: Share code among tests
by JavaFan (Canon) on May 08, 2011 at 17:05 UTC | |
by ambrus (Abbot) on May 08, 2011 at 17:52 UTC | |
by JavaFan (Canon) on May 08, 2011 at 19:57 UTC | |
by DrHyde (Prior) on May 10, 2011 at 10:12 UTC | |
|
Re: Share code among tests
by Anonymous Monk on May 08, 2011 at 21:01 UTC | |
|
Re: Share code among tests
by ikegami (Patriarch) on May 08, 2011 at 17:04 UTC |