1. 程式人生 > 其它 >pytest的軟斷言-斷言失敗後仍然執行後續程式碼(外掛:pytest-assume)

pytest的軟斷言-斷言失敗後仍然執行後續程式碼(外掛:pytest-assume)

前言

pytest使用assert來做斷言,但是assert斷言是一旦遇到斷言失敗的測試用例後,後面的程式碼就不會再執行了。但有的時候我們經常會在用例中寫多個斷言,並且希望在第一個斷言失敗後,後面的所有的斷言都能繼續執行完,這就需要用到pytest-assume外掛來解決。

assert硬斷言(第一個斷言失敗後,後續程式碼不再執行)

# file_name: test_assume.py


import pytest


def test_assume_01():
    print("\n-----測試用例開始執行-----")
    assert 1 == 2
    assert 2 == 2
    print
("-----測試用例執行結束了-----") if __name__ == '__main__': pytest.main(['-s', 'test_assume.py'])

執行結果:

從執行結果中可以看到執行到assert 1 == 2 的時候斷言失敗了,後面的程式碼就沒有執行了。

assume軟斷言(第一個斷言失敗後,後續程式碼會繼續執行)

使用pytest.assume()斷言:

# file_name: test_assume.py


import pytest


def test_assume_01():
    print("\n-----測試用例開始執行-----
") pytest.assume(1 == 2) pytest.assume(2 == 2) print("-----測試用例執行結束了-----") if __name__ == '__main__': pytest.main(['-s', 'test_assume.py'])

執行結果:

從執行結果中可以看到,斷言在pytest.assume(1 == 2) 時失敗了,但是後面的程式碼也執行了。

去期待陌生,去擁抱驚喜。