pytest fixtures 和 confest.py 模块可以跨包共享吗?
Can pytest fixtures and confest.py modules be shared across packages?
假设我有 packageA
,它提供 class usefulClass
,test_stuff.py
模块中的 pytest 固定装置,以及 conftest.py
模块中的测试配置。
此外,假设我有 packageB
和 packageC
,它们都导入 packageA
,通过 pip
安装,并且它们使用 usefulClass
一样的方法。因为它们以相同的方式使用 usefulClass
,所以 packageB
和 packageC
将需要许多相同的 pytest fixtures 和配置。事实上,他们的测试主要仅在他们迭代的输入集上有所不同。
由于使用 usefulClass
的 fixtures 和 configurations 是相同的,是否可以在 packageA
中定义这些 fixtures 和 configurations,然后将它们导入到 [的测试环境中=15=] 和 packageC
?
特别是,我想在数十个(如果不是数百个)其他包中重用 packageA
的 conftest.py
模块中出现的 pytest_generate_tests
的定义。这样,我只需要维护一个 confest.py
个模块,而不是数百个
conftest.py
文件不是模块的一部分,无法从其他模块导入。
但是您可以创建一个模块 packageA.testutils
,然后您可以将其导入所有 conftest.py
文件,包括 packageA
的:
from packageA.testutils import *
也许它甚至可以保证创建一个所有其他包都依赖的单独包。
假设我有 packageA
,它提供 class usefulClass
,test_stuff.py
模块中的 pytest 固定装置,以及 conftest.py
模块中的测试配置。
此外,假设我有 packageB
和 packageC
,它们都导入 packageA
,通过 pip
安装,并且它们使用 usefulClass
一样的方法。因为它们以相同的方式使用 usefulClass
,所以 packageB
和 packageC
将需要许多相同的 pytest fixtures 和配置。事实上,他们的测试主要仅在他们迭代的输入集上有所不同。
由于使用 usefulClass
的 fixtures 和 configurations 是相同的,是否可以在 packageA
中定义这些 fixtures 和 configurations,然后将它们导入到 [的测试环境中=15=] 和 packageC
?
特别是,我想在数十个(如果不是数百个)其他包中重用 packageA
的 conftest.py
模块中出现的 pytest_generate_tests
的定义。这样,我只需要维护一个 confest.py
个模块,而不是数百个
conftest.py
文件不是模块的一部分,无法从其他模块导入。
但是您可以创建一个模块 packageA.testutils
,然后您可以将其导入所有 conftest.py
文件,包括 packageA
的:
from packageA.testutils import *
也许它甚至可以保证创建一个所有其他包都依赖的单独包。