[Bioperl-l] BioPerl Test requirements

Chris Fields 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 mailing list