是否可以指示nose测试框架仅在test_*.py
个文件中运行测试?
实际上,使用以下目录结构执行nosetests A
:
A/
test_A.py
B/
__init__.py
导入B,我想避免。
原因是B模块以import numpy
开头,因为它仅用于在用户安装了可选的NumPy模块时使用。但是,未安装NumPy的用户不希望nosetests处理B/__init__.py
,因为即使NumPy是可选的,它也必然会在import numpy
上失败。如何实现这一目标?
答案 0 :(得分:4)
只需使用try:..except ImportError:...
块包装导入。在这种情况下,你甚至可以设置一个变量,让你知道numpy是否可用。
答案 1 :(得分:2)
当然,只需使用--match和--exclude命令行选项来限制鼻子将作为测试程序发现的内容。
答案 2 :(得分:1)
Nose可以接受/拒绝目录,文件,模块,类和方法级别的测试。您需要拒绝B
目录。无法忽略__init__.py
文件; Python从未见过它。它会在导入B
时显示,因此您需要忽略B
。
尝试:
nosetests --exclude=B
答案 3 :(得分:0)
我认为鼻子排除插件可能会有所帮助。如果您安装此插件,然后运行:
nosetests --exclude-dir B
它可能对你有用。我有同样的问题,并取得了一些可以通过的结果。现在我的下一个问题是创建nosetests配置文件时exclude-dir
似乎不是一个可用的选项。