目前,我有两个包作为我的测试存储库的一部分,它们的文件夹结构如下:
Package_A
|--__init__.py
|--conftest.py
|--test_A.py
Package_B
|--__init__.py
|--test_B.py作为其中的一部分,我的需求是从Package_B/test_B.py调用Package_A/conftest.py中定义的fixture。我知道,如果B包在A包内,这是很容易做到的。但是,由于某些要求,这是不可能的。有没有一种方法可以将包A的conftest中定义的所有fixture导入到包B中,而不是复制到包中。谢谢。
发布于 2021-01-17 12:32:24
在进一步搜索后,我能够通过以下重构并使用pytest插件来解决这个问题:
Package_A
|--__init__.py
|--fixtures.py - Define the fixtures to be shared across packages
|--conftest.py (Import fixtures.py by using 'pytest_plugins')
|--test_A.py
Package_B
|--__init__.py
|--conftest.py (Import fixtures.py from Package A by using 'pytest_plugins')
|--test_B.py发布于 2021-01-15 14:59:48
如果你使用的是Pycharm或VSC之类的IDE,那就别着急。当你想导入一个包的时候,你需要调用这个包的目录。但在集成开发环境中,您可以执行以下操作:如果要导入到Package_B中的test_B.py文件
from Package_A import test_A 或
from Package_A.test_A import (Exact class or function you want)https://stackoverflow.com/questions/65731633
复制相似问题