我有这些目录:
./Tools
./ook/Tools.
我在 setup.cfg
中的 py.test 的 norecursedirs
选项中添加了 Tools
。正如预期的那样,当 py.test 收集测试时,./Tools
不会被探索。但是,./ook/Tools
也不是,这是一个问题,因为我想要这个。
知道如何实现吗?
norecursedirs 的值是一个 glob 模式,要使其匹配完整路径,您的模式必须包含一个/字符。不幸的是,它匹配的完整路径是绝对路径,因此如果您只想要基本工具,则必须包括父目录名称:
$ find root/
root/
root/Tools
root/Tools/test_foo.py
root/Tools/__init__.py
root/setup.cfg
root/ook
root/ook/Tools
root/ook/Tools/test_foo.py
root/ook/__init__.py
$ cat root/setup.cfg
[pytest]
norecursedirs = root/Tools
$ py.test --collectonly root/
============================= test session starts ==============================
platform linux2 -- Python 2.7.3 -- pytest-2.2.1
collected 1 items
<Module 'root/ook/Tools/test_foo.py'>
<Function 'test_foo'>
=============================== in 0.01 seconds ===============================
我是一名优秀的程序员,十分优秀!