【发布时间】:2013-03-25 16:14:14
【问题描述】:
我有一个包含几个子包的包,其中一个用于测试(名为tests)。由于子包名称清楚地表明包含的模块是测试模块,所以我不想用测试名称模式污染模块名称,nose 期望包含它们以进行测试。这就是我正在考虑的设置:
- foo
- __init__.py
...
- bar
- __init__.py
...
- baz
- __init__.py
...
- tests
- __init__.py
- something.py
现在,默认情况下,nose 不会运行 foo.tests.something 中的测试。我知道nose 接受-i 选项来定义正则表达式,以便在其中搜索测试的其他内容。所以nose -i something 在这里完成了这项工作。但是,我在 tests 包中有一堆模块,不想明确命名它们。 nose -i tests\..* 不起作用,看起来鼻子只匹配模块基本名称。作为最后的手段,我可以运行nose --all-modules,但这也会检查foo.bar 和foo.baz——我想避免这种情况。
那么,我如何指示鼻子在给定包中的所有模块中查找测试(在我的情况下为tests)?我可以为这个任务写一个鼻子插件,但我正在寻找一个标准的解决方案。
【问题讨论】: