|Think about Loose Coupling|
Re: Test::Class and use libby fokat (Deacon)
|on Aug 22, 2005 at 05:11 UTC||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?
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...
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 :)
-lem, but some call me fokat