我有一个带有unittest-module和logs
目录的目录,其中编写了调试信息。
因为我使用-f
/ --looponfail
选项,所以我需要忽略logs
- 目录中的更改。
tests$ ls
logs __pycache__ pytest.ini test_basic.py
tests$ cat pytest.ini
[pytest]
norecursedirs = logs
python_files = test_*.py
tests$ py.test -h
(...)
[pytest] ini-options in the next pytest.ini|tox.ini|setup.cfg file:
markers (linelist) markers for test functions
norecursedirs (args) directory patterns to avoid for recursion
usefixtures (args) list of default fixtures to be used with this project
python_files (args) glob-style file patterns for Python test module discovery
python_classes (args) prefixes for Python test class discovery
python_functions (args) prefixes for Python test function and method discovery
addopts (args) extra command line options
minversion (string) minimally required pytest version
rsyncdirs (pathlist) list of (relative) paths to be rsynced for remote distributed testing.
rsyncignore (pathlist) list of (relative) glob-style paths to be ignored for rsyncing.
looponfailroots (pathlist) directories to check for changes
最终在循环中调用失败的测试,因为logs/test_basic.log
中的更改被监视,我想知道为什么会这样。我documentation似乎很清楚。
答案 0 :(得分:1)
pytest-xdist没有影响--looponfail
上忽略哪些文件的选项。 norecursedirs
仅影响作为测试收集的文件。
答案 1 :(得分:1)
正如@ hpk42所指出的那样norecursedirs
只影响测试集合,而不影响文件系统监控。
因此,处理它的可能性是将日志移出测试目录。
答案 2 :(得分:0)
looponfailroots
现在解决了这个问题。将其放入setup.cfg
:
[tool:pytest]
looponfailroots=mylib