pytest fixtures 和 confest.py 模块可以跨包共享吗?

Can pytest fixtures and confest.py modules be shared across packages?

假设我有 packageA,它提供 class usefulClasstest_stuff.py 模块中的 pytest 固定装置,以及 conftest.py 模块中的测试配置。

此外,假设我有 packageBpackageC,它们都导入 packageA,通过 pip 安装,并且它们使用 usefulClass一样的方法。因为它们以相同的方式使用 usefulClass,所以 packageBpackageC 将需要许多相同的 pytest fixtures 和配置。事实上,他们的测试主要仅在他们迭代的输入集上有所不同。

由于使用 usefulClass 的 fixtures 和 configurations 是相同的,是否可以在 packageA 中定义这些 fixtures 和 configurations,然后将它们导入到 [的测试环境中=15=] 和 packageC

特别是,我想在数十个(如果不是数百个)其他包中重用 packageAconftest.py 模块中出现的 pytest_generate_tests 的定义。这样,我只需要维护一个 confest.py 个模块,而不是数百个

conftest.py 文件不是模块的一部分,无法从其他模块导入。

但是您可以创建一个模块 packageA.testutils,然后您可以将其导入所有 conftest.py 文件,包括 packageA 的:

from packageA.testutils import *

也许它甚至可以保证创建一个所有其他包都依赖的单独包。