On Wed, Oct 7, 2015 at 11:31 AM, Ionel Cristian Mărieș <cont...@ionelmc.ro> wrote: > > On Wed, Oct 7, 2015 at 6:13 PM, Erik Bray <erik.m.b...@gmail.com> wrote: >> >> > Lets not use `setup.py test`. It's either bad or useless. >> >> Says who? Many of the projects I'm involved in use `setup.py test` >> exclusively and for good reason--they all have C and/or Cython >> extension modules that need to be built for the tests to even run. >> Only setup.py knows about those extension modules and how to find and >> build them. Using `setup.py test` ensures that everything required to >> run the package (including runtime dependencies) is built and ready, > > > Well ok, then it's not useless. :-) > >> For pure Python packages I think it's less important and can usually >> rely on "just run 'nose', or 'py.test'" (or "tox" but that's true >> regardless of how the tests are invoked outside of tox). > > > That implies you would be testing code that you didn't install. That allows > preventable mistakes, like publishing releases on PyPI that don't actually > work, or do not even install at all (because you didn't test that). > `setup.py test` doesn't really allow you to fully test that part, but Tox > does.
Which, incidentally, is a great reason for installable tests :) Running in the source tree is great for development. But when preparing a release it's great to be able to create an sdist, install that into a virtualenv, and run `package.test()` or `python -m package.tests` or whatever. Occasionally catches problems with the source dist if nothing else. Best, Erik _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig