[Bioperl-l] BioPerl Test requirements
cjfields at illinois.edu
Mon Aug 1 00:07:38 EDT 2011
We are currently using a BioPerl-specific module for running tests called Bio::Root::Test. It is essentially a wrapper module, re-exporting all the methods for Test::More, Test::Exception, and Test::Warn. One problem: it currently expects a copy of Test::Warn and Test::Exception in each repository as a fallback. Another problem: these included modules appear to be triggering dependencies with debian packaging.
As an example of one hidden dependency, the included Test::Warn requires Array::Compare, which converted to Moose a few years ago, so you automatically have to install the entire Moose dependency tree, even though Bioperl doesn't require it (not a slam on Moose, you really SHOULD be using Moose these days. No, really :).
Anway, more recent versions of Test::Warn don't have this requirement, but as we package an old version of this module we get stuck with the dependencies until we (manually) update this for each repository. Ick.
I think the best solution is to remove the bioperl-local modules in t/lib and list Test::Most instead as a 'build_requires' in Build.PL, e.g. the module is only necessary for the build phase so is optionally installed. Test::Most essentially does exactly the same thing as Bio::Root::Test and more; it also includes Test::Deep and Test::Diff (Bio::Root::Test has a few additional methods of use as well).
As this will require developers to use Test::Most instead, though, I though it would be worth asking on the list to see if there are any objections. Any thoughts?
More information about the Bioperl-l