On Thu, Feb 26, 2009 at 6:24 PM, Michael G Schwern <schw...@pobox.com> wrote: > demerphq wrote: >> Id prefer we find a different solution. Im not sure what it is, but >> having the tests all run in one block is a very desirable feature.
Me too. > The important thing is the core change from running the ext/ tests manually to > using each module's own "make test". This will make integrating and > developing dual life modules far easier by eliminating a key difference in how > ext/ and CPAN modules are developed. Hmm. This only makes any difference for modules that distribute their own libraries that are only used for testing, right? It looks like ext/Test-Harness/t/lib is the only one like that currently. Add Module::Build and ExtUtils::MakeMaker when they get moved to ext/, maybe a couple others. So in order to accommodate a few special cases, you're proposing a significant change to the way tests are done, a change that adds multiple points of failure to a process that's been pretty well debugged over a period of years, and also creates a lot of churn in all the platform-specific bits of the toolchain, not to mention Test::Smoke? Ick. Wouldn't it be much, much simpler to add a few lines of code somewhere central (possibly t/TestInit.pm, maybe t/TEST) that recognizes the special cases of "I'm a funny module that can't run tests without access to my own special, uninstalled libraries under ../ext/$module_name/t/lib"? The "special needs" modules under ext wouldn't have to do anything different from what they do on CPAN and the core test process wouldn't change except to add one entry to @INC for the special cases. That's a list that would be very short and wouldn't change very often. Heck, it might even work to pass -I../ext/$module_name/t/lib to *all* tests under ext/, and the extensions that don't have such a directory obviously won't get anything loaded from there.