【问题标题】:How to organize fixtures when using pytest使用pytest时如何组织fixture
【发布时间】:2013-03-13 20:50:44
【问题描述】:

固定装置往往很小且可重复使用。鉴于特定的夹具可以依赖于其他夹具

@pytest.fixture
def Account(db, memcache):
    ...

我想在模块中组织我的固定装置,并将它们导入到特定的测试文件中(例如)

from .fixtures.models import Account

不幸的是,这似乎不起作用。相反,我也总是必须导入所有从属装置,例如

from .fixtures.models import Account, db, memcache

拥有细粒度、可重复使用的小型固定装置并使其在模块级别上可访问的更好方法是什么? (conftest 适用于包/目录级别。)

【问题讨论】:

  • 在 conftest.py 文件中组织夹具有什么问题?这对我们在大型项目中效果很好,它们都被加载并具有合适的隐式范围。
  • @flub 我对 conftest 的一个问题是当您在不同级别的测试目录中拥有许多它们时。要找出一个固定装置的来源,你必须自下而上扫描所有的 conftest 文件。您的 IDE 不知道它来自哪里。
  • --fixtures --verbose 会告诉你灯具来自哪里。另外,如果我没记错的话,这些天绝地武士会找到固定装置的定义。有人可能应该把这些 cmets 写成这个问题的正确答案......

标签: python fixtures pytest


【解决方案1】:

通常我不建议这样做,但如果您的模块包含一组特定的装置(它们相互依赖),那么from .fixtures.models import * 可能可行吗?目前我想不出另一种通用解决方案来避免了解导入测试模块中的底层夹具依赖项。

【讨论】:

  • 我实际上来自from funcargs import * 方法,并试图避免它。值得功能请求吗?
  • 除非有改进的想法,否则功能请求不会有太大帮助,恐怕。
猜你喜欢
  • 1970-01-01
  • 2023-01-27
  • 2022-11-30
  • 2023-01-27
  • 2023-02-26
  • 2018-01-25
  • 2022-11-28
  • 1970-01-01
  • 2019-11-18
相关资源
最近更新 更多