在所有子目录中运行nosetests

Max*_*mov 12 python nose python-3.x

我可以在workflow文件夹中运行测试nosetests:

workflow maks$ nosetests
..........
----------------------------------------------------------------------
Ran 10 tests in 0.093s

OK
Run Code Online (Sandbox Code Playgroud)

我的测试住在test文件夹中:

workflow maks$ ls
__pycache__     iterations.py       test
data            iterationsClass.py  testData
env         iterationsClass.pyc
Run Code Online (Sandbox Code Playgroud)

但是当我搬到父母目录时:

(py3env)Makss-Mac:workflow maks$ cd ..
Run Code Online (Sandbox Code Playgroud)

它无法找到测试.

(py3env)Makss-Mac:Packages maks$ nosetests

----------------------------------------------------------------------
Ran 0 tests in 0.005s

OK
Run Code Online (Sandbox Code Playgroud)

那么如何在所有子目录中进行nosetest搜索测试呢?

Ole*_*siy 13

如果您workflow通过放置文件夹使文件夹成为模块__init__.py,那么鼻子应该能够找到您的测试.


7yl*_*l4r 7

如果您不想让您的文件夹成为模块,请将 asetup.cfg放在您要运行的目录中,nosetests它会自动传递tests选项nosetests以指定测试的相对位置。像这样:

#setup.cfg contents:

[nosetests]
exe = True
tests = workflow/
Run Code Online (Sandbox Code Playgroud)

您还可以使用相同的机制传递多个文件夹/测试:

#setup.cfg contents:

[nosetests]
exe = True
tests = workflow/, other/dir/full/of/tests/, direct/file/my_test.py
Run Code Online (Sandbox Code Playgroud)