> (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