我可以配置pytest在使用--looponfail选项运行时忽略目录吗?

时间:2014-05-11 22:40:19

标签: python pytest

我有一个带有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似乎很清楚。

3 个答案:

答案 0 :(得分:1)

pytest-xdist没有影响--looponfail上忽略哪些文件的选项。 norecursedirs仅影响作为测试收集的文件。

答案 1 :(得分:1)

正如@ hpk42所指出的那样norecursedirs只影响测试集合,而不影响文件系统监控。

因此,处理它的可能性是将日志移出测试目录。

答案 2 :(得分:0)

looponfailroots现在解决了这个问题。将其放入setup.cfg

[tool:pytest]
looponfailroots=mylib