python断言的几种方式_我可以在一个Python pytest方法中处理多个断言吗?

通常,我只是让测试在第一个断言时失败。但是,如果您真的想进行多个比较,请比较元组。下面是一个简单的例子:def foo(x):

return x + 1

def bar(y):

return y - 1

def test_foo():

# some expensive calculation

a = foo(10)

# another expensive calculation

b = bar(10)

assert (a, b) == (10, 9)

当我使用pytest运行它时,它会显示两个值:$ pytest scratch.py

============================= test session starts =============================

platform linux2 -- Python 2.7.12, pytest-3.0.7, py-1.4.33, pluggy-0.4.0

rootdir: /home/don/workspace/scratch, inifile:

collected 1 items

scratch.py F

================================== FAILURES ===================================

__________________________________ test_foo ___________________________________

def test_foo():

# some expensive calculation

a = foo(10)

# another expensive calculation

b = bar(10)

> assert (a, b) == (10, 9)

E assert (11, 9) == (10, 9)

E At index 0 diff: 11 != 10

E Use -v to get the full diff

scratch.py:16: AssertionError

========================== 1 failed in 0.02 seconds ===========================

我还尝试使用and组合比较,但由于short circuiting的原因,这种方法不起作用。例如,我尝试了以下断言:assert a == 10 and b == 9

Pytest报告此失败:> assert a == 10 and b == 9

E assert (11 == 10)

除非使用--showlocals选项,否则它不会报告b的值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值