Pytest 断言在 AssertionError 上没有显示差异

Vic*_*Cui 5 python pytest

我最近学习了使用Pytest在 Python 中进行单元测试。我在Repl.it 中通过对两个应该失败的不同字符串做一个简单的断言来玩弄它。

import pytest
assert 'a' == 'b'
Run Code Online (Sandbox Code Playgroud)

哪个失败并出现错误 Traceback (most recent call last): File "python", line 2, in <module> AssertionError

但是 Pytest 不打印 'a' 或 'b'。这对调试非常有帮助,因为我可以比较 2 个不同字符串之间的差异。该单元测试模块在默认情况下此功能。Pytest 有这个功能吗?如果不是我如何启用它?我正在将 Pytest 用于一个更大的项目,并希望在继续工作之前弄清楚这一点。

kol*_*lis 7

如果您的断言代码在外部辅助函数中,另请参阅断言重写

这对我来说是一个问题,但通过在测试目录中添加pytest.register_assert_rewrite('path.to.helper')来解决__init__.py