python - Pytest 断言在 AssertionError 上没有显示差异
问题描述
我最近了解了使用Pytest在 Python 中进行单元测试。我在Repl.it中通过对两个应该失败的不同字符串进行简单的断言来玩弄它。
import pytest
assert 'a' == 'b'
哪个因错误而失败
Traceback (most recent call last):
File "python", line 2, in <module>
AssertionError
但是 Pytest 不打印 'a' 或 'b'。这对调试非常有帮助,因为我可以比较 2 个不同字符串之间的差异。unittest模块默认具有此功能。Pytest 有这个功能吗?如果没有,我该如何启用它?我正在将 Pytest 用于一个更大的项目,并且很想在继续工作之前弄清楚这一点。
解决方案
如果您的断言代码在外部辅助函数中,另请参阅断言重写。
这对我来说是个问题,但通过在测试目录中添加pytest.register_assert_rewrite('path.to.helper')
来解决__init__.py
。
推荐阅读
- php - PHP中以下函数的用途是什么?
- entity-framework - 将多对一关系改为一对一 EF
- java - 带有警报对话框的表中的侦听器
- powershell - 如何尽可能简单地为工作中的所有同事设置默认的 powershell 配置文件?
- javascript - 使用 java/javascript 和 apache POI 导出 .xls 文件时获取损坏的文件
- amazon-web-services - 仅允许另一个 Lambda 执行 Lambda
- mongodb - 更新整个数据库中对象的所有实例
- java - 找不到工件jackson-modules-java8 jar
- jquery - 在jquery中将连接值作为参数传递
- sql - 从字符串转换日期和/或时间时转换失败:trx_date