首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytest-断言语句

pytest-断言语句

作者头像
流柯
发布2023-03-16 21:10:53
1470
发布2023-03-16 21:10:53
举报
文章被收录于专栏:流柯技术学院流柯技术学院

pytest允许在测试用例中使用标准的python断言,如下:

# test_case.py中的内容
def foo(x, y):
  return x + y
def test_01():
  assert foo(3, 4) == 8

本例中的函数期望返回一个固定的值。如果该断言失败了,你会看到该函数的返回值:

$ pytest test_assert1.py
============================= test session starts ==============================
platform darwin ‐‐ Python 3.7.6, pytest‐4.2.1, py‐1.7.0, pluggy‐0.8.1
rootdir: /Users/liuke/test/demo, inifile:
collected 1 item
test_case.py F [100%]
=================================== FAILURES ===================================
________________________________ test_function _________________________________
  def test_function():
>     assert foo(3, 4) == 8
E     assert 7 == 8
E      + where 7 = foo()
test_case.py:5: AssertionError
=========================== 1 failed in 0.07 seconds ===========================

pytest支持显示常见的子表达式的值,包括调用,属性,比较以及二元和一元运算符。(参看Demo of Python failure reports with purest 这允许你使用你习惯的python的在不丢失内省信息的情况下 构造代码。(什么是内省信息?更详细的内部输出信息?) 如果你为断言指定了输出信息,那么不会 输出任何内省信息,而是在traceback中直接输出指定的信息:

assert a % 2 ==0, "value was odd, should be even"

更多断言内省信息请参考Advanced assertion introspection

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档