> (I deliberately
> did *not* list IO::Capture as a prerequisite in Makefile.PL because I
> didn't want to force users to install that module.  I simply wanted them
> to use it during testing and then throw it away.

this is the start of the right attitude I think - when your testing
environment relies on tools that your runtime environment does not it should
be up to the (individual) tests, not the distribution, to make sure that the
testing environment is sane.

what I personally would change about what you are doing is adjust each
plan() call so that you only plan() tests where you know the environment
contains what you need.  then rely on the user's @INC to decide if they have
the proper setup required to run your tests, and remove IO::Capture from
your distribtion altogether.  YMMV :)

if you search the archives for this list you'll see some talk from a few
months ago about extending Test::Builder's plan() so that it functions the
same was as Apache::Test::plan() - it was precisely to cover situations like
the one you experienced that I wanted to see this happen.  IIRC the
discussion ended with "that should be a separate module" so I wrote
Test::Plan, which you can look at as well - not as an endorsement of the
module per se, but rather of the basic idea I was trying to get across: it's
not a test failure if the "failure" is the result of an incomplete test
environment, so it ought to be up to the tests to make sure that the
environment is good to go before they even start.

--Geoff

Reply via email to