请教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
相关产品推荐
相关产品推荐

