Вот что у меня работает:
$ 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"
Я создал действительно базовый пакет slither
, у которого в setup.py
был такой же атрибут test_suite
, как вы упоминали выше. Затем я поместил исходный код пакета в env1/src
.
Если вы загляните внутрь env1/src
, вы увидите:
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
Я могу запустить тесты с помощью подкоманды test
:
(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
Или я могу запустить те же тесты с nosetests
:
(env1)$ pushd src
(env1)$ nosetests slither/
..
Ran 2 tests in 0.007s
OK
(env1)$ popd
Также обратите внимание, что nosetests
может быть требователен к исполняемым файлам. Вы можете пройти --exe
, если хотите, чтобы он обнаруживал тесты в исполняемых модулях Python.