【问题标题】:Pytest - Test directory specific conftest.py to override pytest_terminal_summaryPytest - 测试特定目录的 conftest.py 以覆盖 pytest_terminal_summary
【发布时间】:2020-02-06 19:47:01
【问题描述】:

搜索网络和 pytest 文档,我有点困惑。 是否建议在各自的conftest.py 中使用特定于测试目录的挂钩??

虽然doc

请注意,pytest 在工具启动时不会在更深的嵌套子目录中找到 conftest.py 文件。将 conftest.py 文件保存在顶级测试或项目根目录中通常是个好主意。

下一段描述了每个目录conftest.py

我遇到的问题是我们现有的pytest框架在根conftest.py中定义的globals很少,然后一些脚本有import contest

我希望在我需要解析文件并显示结果的几个测试用例中覆盖pytest_terminal_summary

但是在测试目录中存在本地contest.py,会引发关于globals的错误

contest.py    # Root conftest.py
global logfile

tests/mytests/
              conftest.py
              my_own_test.py

# pytest my_own_test.py
E    module 'conftest' has no attribute 'logfile'

有什么解决方法吗?我不确定我是否可以得到现有的import contest

【问题讨论】:

    标签: pytest


    【解决方案1】:

    我可以通过在 py 文件中添加 pytest_terminal_summary 挂钩来解决此问题。然后将其作为pytest_plugins=[...] 包含在测试模块中。

    注意:我必须使用 python3 -m pytest 调用测试才能让它找到本地可用的模块,但这没关系

    【讨论】:

      猜你喜欢
      • 2023-01-11
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多