# from Michael G Schwern
# on Wednesday 11 April 2012 11:06:
>> What exactly makes you uneasy? Maybe there is a way to address that
>> if you can be more specific.
>
>Mostly that it's cramming yet more complexity into core test library
> for a fairly narrow use case and functionality that lives quite
> happily in its own module. It's already difficult enough to keep
> stable.
>
>To reverse it, why should it be in Test::More? "People don't like to
> have extra test dependencies" is not accepted.
Looking at this a different way, instead of a library, make a distzilla
extension (or whatever) which generates (and regenerates) a 00-load.t
as per Ovid's earlier example.
The trouble with having it in a library is not just that you have a test
dependency, but also that you have to add more complexity to the
library (and then you have a test dependency on a newer version)
whenever someone wants to do a complex thing.
Many modules in a distribution may not load unless $optional_dependency
is satisfied. But, it is good to precheck all of the modules in a
distribution before starting tests (aside: did someone say prefork?)
and helps to wrap this in some useful diagnostic + bail out.
I think something which embeds code in a 00-load.t, plus helps you
maintain a list of modules by scanning lib/ would be a handy way to do
that. (Perhaps a list + hash to address the optional dependencies and
each optional module has a subref to determine if it is enabled.)
One could argue that the functionality should be included in each test
file to keep things orthogonal. Such a one may find that there may be
a way to require("./t/00-load.t") from each test file, but might also
end up with a library and/or a hybrid with regenerative breaking
(prefork.)
--Eric
--
But you can never get 3n from n, ever, and if you think you can, please
email me the stock ticker of your company so I can short it.
--Joel Spolsky
---
http://scratchcomputing.com
---