You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问作为子模块引入的公共仓库中定义的pytest fixture?

可用解决方案

方案1:根目录conftest导入共享fixture(适合固定配置,无需每次运行加参数)

操作步骤:

  • 在repo A的根目录(与C文件夹平级的位置)新建conftest.py文件,写入以下内容:
import sys
from pathlib import Path

# 将子模块C的目录加入Python导入路径
sys.path.insert(0, str(Path(__file__).parent / "C"))

# 导入C中定义的所有fixture
from conftest import *

pytest运行时会自动加载项目根目录下的conftest.py,导入的fixture会被pytest直接识别,所有测试用例都可以直接调用。

方案2:运行测试时指定conftest搜索目录(适合临时使用,无需修改项目文件)

操作步骤:

  • 执行pytest命令时添加--conftest-dirs参数指向子模块C的目录,命令示例:
pytest --conftest-dirs=C tests/

如果运行pytest的工作目录不是repo A的根目录,需要将参数值改为C目录的对应相对路径或绝对路径。


补充说明

你之前尝试的方案无效的原因:

  • PYTHONPATH仅解决Python模块导入逻辑,不会让pytest自动扫描对应目录下的conftest.py文件
  • -p参数用于加载pytest插件,不适用普通conftest的加载场景

内容的提问来源于stack exchange,提问作者Juliusz Ryłko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:48:05