assert
pytest允許您使用標准Python斷言來驗證Python測試中的期望和值。例如,你可以寫下
# content of test_assert1.py
def f():
return 3
def test_function():
assert f() == 4
斷言f()函數的返回值,接下來會看到斷言失敗,因為返回的值是3,判斷等於4,所以失敗了
異常信息
如果想在異常的時候,輸出一些提示信息,這樣報錯后,就方便查看是什么原因了
def f():
return 3
def test_function():
a = f()
assert a % 2 == 0, "判斷a為偶數,當前a的值為:%s"%a
運行結果
================================== FAILURES ===================================
________________________________ test_function ________________________________
def test_function():
a = f()
> assert a % 2 == 0, "判斷a為偶數,當前a的值為:%s"%a
E AssertionError: 判斷a為偶數,當前a的值為:3
E assert (3 % 2) == 0
test_03.py:9: AssertionError
========================== 1 failed in 0.18 seconds ===========================
這樣當斷言失敗的時候,會給出自己寫的失敗原因了E AssertionError: 判斷a為偶數,當前a的值為:3
常用斷言
pytest里面斷言實際上就是python里面的assert斷言方法,常用的有以下幾種
- assert xx 判斷xx為真
- assert not xx 判斷xx不為真
- assert a in b 判斷b包含a
- assert a == b 判斷a等於b
- assert a != b 判斷a不等於b
