Here's what works for me:
$ virtualenv --no-site-packages env1
$ cd env1
$ source bin/activate # makes "env1" environment active,
# you will notice that the command prompt
# now has the environment name in it.
(env1)$ easy_install nose # install nose package into "env1"
I created a really basic package slither
that had, in its setup.py
, same test_suite
attribute as you mentioned above. Then I placed the package source under env1/src
.
If you looked inside env1/src
, you'd see:
slither/setup.py
slither/slither/__init__.py
slither/slither/impl.py # has some very silly code to be tested
slither/slither/tests.py # has test-cases
I can run the tests using test
subcommand:
(env1)$ pushd src/slither
(env1)$ python setup.py test
# ... output elided ...
test_ctor (slither.tests.SnakeTests) ... ok
test_division_by_zero (slither.tests.SnakeTests) ... ok
Ran 2 tests in 0.009s
OK
(env1)$ popd
Or, I can run the same tests with nosetests
:
(env1)$ pushd src
(env1)$ nosetests slither/
..
Ran 2 tests in 0.007s
OK
(env1)$ popd
Also note that nosetests
can be picky about executables. You can pass --exe
if you want it to discover tests in python modules that are executable.