Christopher H. Laco wrote:
Nik Clayton wrote:
Paul Johnson wrote:
On Thu, Feb 08, 2007 at 09:26:01AM +0000, Nik Clayton wrote:
[ I vaguely recall a discussion about this, but my search-fu is weak,
and I can't find it ]
Is there a standard way/idiom to get ExtUtils::MakeMaker to support
tests in subdirectories of t/?
I've got a bunch of tests, and rather than client-ls.t, client-add.t,
client-commit.t, etc, I'd like t/client/ls.t, t/client/add.t,
t/client/commit.t, and so on.
I have this in one of my Makefile.PLs, which seems to be just about
what you
are looking for:
WriteMakefile
(
...
test => { TESTS => "t/*/*.t" },
...
);
Ah. My mistake for not being clear enough. I want to run t/*.t and
t/*/*.t.
Of course, I tried
test => { TESTS => [ "t/*.t", "t/*/*.t" ] },
and it doesn't work. It's just occurred to me that I'm trying to be too
clever.
test => { TESTS => "t/*.t t/*/*.t" },
works perfectly.
N
I offer this word of warning. If you have too many tests, or many
longly-named tests, win32 will in all likelyhood barf with a command
line too long error.
I had this problem in Handel (too many tests..it's a good problem to
have really), and even after updating EU::MM and all of my other Test::
bits, I still had the problems.
Some people do. Some people don't. It seems to be a crapshoot. But the
only consistant fix for me was to keep all of my tests in t/, and to not
use the test => {TESTS} idium....
I also had the same issue when using M::I w/Makefile.PL, which is just
EU::MM underneath I assume.
Yep, although M::I has some capacity to add a but of extra magic if you
could come up with a workaround (like having File::Find locate them all
and provide a complete list of TESTS).
Adam K