概述
通常,我只是让测试在第一个断言时失败。但是,如果您真的想进行多个比较,请比较元组。下面是一个简单的例子: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的值。
最后
以上就是高大香氛为你收集整理的python断言的几种方式_我可以在一个Python pytest方法中处理多个断言吗?的全部内容,希望文章能够帮你解决python断言的几种方式_我可以在一个Python pytest方法中处理多个断言吗?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复