【问题标题】:Pytest: use App conftest.py in framework testsPytest:在框架测试中使用 App conftest.py
【发布时间】:2017-06-12 11:29:58
【问题描述】:

我正在尝试使用 pytest 运行 splinter 测试用例。我有一个应用程序和一个框架,它们都定义了测试用例。当我开始运行测试时,我的应用程序还使用“main”函数(来自 _pytest.config import main main([<framework_dir>, args, ...]))运行框架的测试用例。

问题是我想使用应用程序 conftest.py 而不是框架的 conftest.py。我试图通过使用 --confcutdir= 选项(main([<framework_dir>, '--confcutdir={}'.format(os.path.dirname(__file__)), ...]))来实现这一点,但它不起作用。当我列出固定装置(带有 --fixtures 选项)时,它们没有列出(在应用程序的 conftest.py 中定义的那些)。

那么有没有人有任何经验如何在应用程序和框架/lib 之间共享固定装置?

我创建了一个 GitHub 存储库来模拟我的项目并重现错误:https://github.com/karantan/global-fixtures

【问题讨论】:

    标签: python pytest fixtures


    【解决方案1】:

    用户“enkidulan”在 websauna IRC 聊天中得到了很多帮助。他指出我不应该通过main 函数调用框架测试。

    我的问题的根源是strategy of pytests discovery of fixtures functions 似乎最接近测试文件conftest.py 总是在覆盖竞争中获胜,即使-p 指定了一些要加载的固定装置(不确定它是否是pytests)。

    所以他建议我应该将 conftest.py 重命名为不同的名称,例如 fixtures.py(我这样做了)。然后,我不仅发现了 App 测试 (pytest src/app/tests/),还发现了框架测试 + 添加要使用的固定装置:pytest -p app.tests.fixtures src/app/tests/

    注意:如果有人想检查代码的外观,repo 将使用最新的工作版本进行更新。

    【讨论】:

      猜你喜欢
      • 2023-01-11
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 2012-07-29
      • 1970-01-01
      相关资源
      最近更新 更多