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

使用pytest测试类方法报错fixture 'self' not found如何解决?

问题原因
  • 顶层测试函数无需self参数:pytest的独立测试函数不属于任何自定义业务类,不需要加self入参。pytest会默认把测试函数的所有入参识别为需要自动注入的fixture,因此会抛出找不到self fixture的错误。
  • 导入逻辑存在遗漏:测试代码仅导入了calgo模块,直接调用MyClass()会触发类未定义的报错,该报错会在解决fixture问题后暴露。
解决方案

方法1:使用独立测试函数(当前写法修正)

直接删除test_func的self参数,同时实例化类时补全模块前缀,修正后的test_calgo.py代码如下:

import calgo 

def test_func():
    mc = calgo.MyClass()
    assert mc.func(3) == 4

方法2:使用测试类组织用例

如果你习惯用类来分组管理测试用例,可以将测试函数放在以Test开头的pytest测试类中,此时成员方法需要带self参数:

from calgo import MyClass

class TestMyClass:
    def test_func(self):
        mc = MyClass()
        assert mc.func(3) == 4

修正后重新执行pytest命令即可正常运行测试。

内容的提问来源于stack exchange,提问作者Jimmy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:45:04