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

Reply via email to