[Distutils] Where should I put my tests in my package?
Ernesto Posse
eposse at gmail.com
Wed Nov 17 18:21:31 CET 2010
On Wed, Nov 17, 2010 at 11:26 AM, Marius Gedminas <marius at pov.lt> wrote:
> 1. I would like to put lots of tests/ folders next to the code they
> test, rather than at the top level of the project. How do I make sure
> the tests folders don't get installed?
> 3. Is there any pattern I should follow for organizing my tests
> within my project?
My approach is a bit different from what has been suggested. I create
a separate tests directory which mirrors the structure of the packages
I want to test, and install them in a (share) data directory. So, in
setup.py I have
import os, os.path
...
data_dir = 'share/pitz/'
data_files = \
[(os.path.join(data_dir, root), [os.path.join(root, file_name) for
file_name in files])
for root, dirs, files in os.walk('tests')] + other_data_files
...
and in MANIFEST.in I have
recursive-include tests *.py
so the directory structure would look like this:
pitz/
src/
pitz/
cmdline/
webapp/
handlers/
__init__.py
statichandler.py
entity/
tests/
pitz/
cmdline/
webapp/
handlers/
__init__.py
test_statichandler.py
entity/
setup.py
MANIFEST.in
I like this approach because it cleanly separates the tests from the
actual package code, the tests go into the data directory, rather than
with the package itself, and I can easily decide whether to include or
not the tests with the distribution.
--
Ernesto Posse
Applied Formal Methods Group - Software Technology Lab
School of Computing
Queen's University - Kingston, Ontario, Canada
More information about the Distutils-SIG
mailing list