【pytest】问题记录:pytest用例执行加载不到上层conftest中的fixture

问题:py文件内执行单个用例或class报错

最近在搞新项目时,代码拉下来后,在执行单个用例或class调试时,发现无法正常运行,提示找不到引用的fixture,报错: fixture ‘res’ not found

def test_inbound_apply_sample_search(self, res, token, data):
E       fixture 'res' not found

终端执行用例

之前没遇见过这个问题,花了些时间排查了一下。首先,这个fixture确定是存在的。我先试着直接在terminal终端执行了一下,是没问题的,能正常运行结束。证明如果按pytest加载文件的顺序执行,其实是能正常加载conftest的fixture的,但在子文件夹内执行单个用例就是找不到

在这里插入图片描述

检查目录结构

整个testcase的目录结构如下图:
我调试的用例在testcase的三级目录下,调用的fixture在testcase的二级目录下,即fixture在用例文件的上一层。上面有说,按pytest的conftest加载顺序来说,应该是可以正常读到引用的fixture的,但是现在的问题是不行。于是,我又试着把conftest.py移到与我调试用例的.py文件同层的目录下。

在这里插入图片描述

conftest移到同层级后,单独调试用例可以执行成功,说明就是因为引用的fixture所在的层级影响,用例引不到上一层级conftest的fixture

在这里插入图片描述

解决方案

在对应用例的.py文件内引入conftest,加上如下代码,用例可以单独调试成功:

from testcase.samplecenter.conftest import *

在这里插入图片描述
解决方案是看了社区中的解答想到的
参考链接:https://testerhome.com/topics/25884

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值