Test driven development is great. So I’m used to having a bin/test
in my
buildout that runs the tests of the package I’m developing. Now it is also
easy to test your dependencies, too. Automatically.
When combining packages, it is handy to also run the tests of the packages you depend on. Most important question: is the combination of versions of my dependencies valid?
Till now, in our projects we had a [test-all]
part in addition to our
[test]
that had a bigger list of eggs: it included the main packages
(mostly our own) that the product depends on. One drawback: the list needs
manual maintenance. If you add a dependency, it is easy to forget to add it
to the test-all list.
Solution: plone.recipe.alltests by Hanno Schlichting.
I’m lazy, so I made a small addition to it today that sets some defaults for
options that are basically always the same. Getting a bin/test-all
that
runs all tests of all the dependencies of your main product only needs the
following two lines in your buildout (and of course the name of your part in
the parts list):
[test-all]
recipe = plone.recipe.alltests
Read the pypi page for the other options (custom set of eggs; grouping; exclude lists).
One problem: there are lots of breaking tests in zope.app.* as used by grok (and probably others) now. At least in the combination. Mostly faulty imports because of the dependency reduction work done earlier this year, as far as I could see. Well, that’s what the “exclude” option of plone.recipe.alltests is for. For the time being. But all the tests run automatically: happy as a pig in mud.
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):