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

请教pytest错误输出中‘+’与‘-’符号的含义

嘿,这就给你讲明白pytest错误输出里的-和+到底是啥意思,结合你的例子一起说更清楚!

1. 符号的基础含义

在pytest的断言失败输出里:

  • 带-的行:代表实际运行得到的结果(也就是你代码里产生的真实值,对应断言语句的左边部分)
  • 带+的行:代表你期望得到的结果(也就是你认为应该正确的值,对应断言语句的右边部分)

2. 结合你的示例看具体作用

先看你的测试代码:

import pytest
assert 'foo 1 bar' == 'foo 2 bar'

当这个断言失败时,pytest给出的错误输出是:

E - foo 1 bar
E ? ^ bar
E + foo 2 bar
E ? ^

这里的细节拆解:

  • E - foo 1 bar:这行是程序实际返回的值,也就是断言左边的'foo 1 bar',是代码运行后真实产生的内容
  • E + foo 2 bar:这行是你期望的正确值,也就是断言右边的'foo 2 bar',是你原本预设的结果

而下面的? ^是pytest贴心的差异高亮,直接指向两者不一样的位置——这里就是数字1和2的地方,帮你一秒定位断言失败的核心原因。

简单来说,-和+就是帮你快速区分“实际发生了啥”和“你想让它发生啥”,再配合差异标记,排查问题效率直接拉满!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:16:07