我有一个大的conftest.py文件,我希望将其分成更小的部分,原因有两个:
我不知道pytest提供的任何机制来解决同一文件夹中多个位置的conftest文件,所以我设计了一个,如下:
import sys
import os
sys.path.append(os.path.dirname(__file__))
from _conftest_private_part_1 import *
from _conftest_private_part_2 import *
from _conftest_private_part_3 import *
@pytest.fixture
def a_fixture_that_is_part_of_the_public_conftest_api():
pass
Run Code Online (Sandbox Code Playgroud)
这适用于我的需求,但我想知道是否有更好的方法.
Bru*_*ira 24
您可以将您的东西放在其他模块中,并使用以下pytest_plugins变量引用它们conftest.py:
pytest_plugins = ['module1', 'module2']
Run Code Online (Sandbox Code Playgroud)
如果你conftest.py有钩子,这也会有效.
你不应该需要任何花哨的魔法。py.test 自动将当前测试文件的路径sys.path以及所有父路径添加到它的目标目录。
因此,您甚至不需要将该共享代码放入conftest.py. 您可以只放入普通模块或包,然后将其导入(如果您想共享设备,则这些设备必须在 a 中conftest.py)。
此外,还有本说明有关从进口conftest.py中的文件:
如果您的 conftest.py 文件不在 python 包目录中(即包含
__init__.py),那么“import conftest”可能不明确,因为conftest.py您的PYTHONPATH或sys.path. 因此,将项目置于conftest.py包范围内或从不从conftest.py文件中导入任何内容是一种很好的做法。
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |