What I did instead is moved all the setup and teardown stuff into simple
functions, plopped them into modules in t/lib/ and had each test do:
use lib 't/lib';
use MakeMaker::Test;
setup_foo();
END { teardown_foo(); }
You can even get clever and pack the setup/teardown calls into loading the
module so you have even less code per script.
Now each test runs independently and cleans itself up.
Lately I find myself cheating a bit on the test naming as well, by just
calling the testing package t::lib::Test.
That saves me one entire line :)
More to the point though, it stops me having to to think about test
module naming, and removes any illusions that the module should ever be
installed anywhere. (Assuming of course that it shouldn't actually be)
Adam K