Python unittest单元测试中如何在assert断言失败后打印指定内容
unittest 自定义断言失败提示实现方案
unittest 所有内置断言方法均支持传入可选的msg参数,断言失败时会自动输出该参数内容,你可以直接将需要打印的变量放到该参数中实现需求。
修改后的示例代码如下:
def test_string(self): my_str = "new string" # 用f-string可以直接嵌入变量内容作为自定义错误提示 self.assertTrue(len(my_str) == 5, f"my_str 实际取值:{my_str}")
你也可以根据需求使用以下两种拓展用法:
- 若需要同时展示框架默认的断言错误信息和自定义内容,可在测试类中开启
longMessage开关,示例:
import unittest class TestDemo(unittest.TestCase): # 开启后自定义消息会和默认错误提示拼接输出 longMessage = True def test_string(self): my_str = "new string" self.assertTrue(len(my_str) == 5, f"my_str 实际取值:{my_str}")
运行失败时的报错会同时包含默认的断言错误逻辑提示和你自定义的变量内容,更便于排查问题。
- 如果你偏好使用原生
assert语法,只要运行测试时不携带-O(Python优化模式)参数,原生assert后跟的错误提示内容也会被unittest正常捕获输出,你原本的原生写法只要调整成动态传入变量即可生效:
def test_string(self): my_str = "new string" assert len(my_str) == 5, f"my_str 实际取值:{my_str}"
内容的提问来源于stack exchange,提问作者TheMachineX
相关产品推荐
相关产品推荐

