pytest的軟斷言-斷言失敗後仍然執行後續程式碼(外掛:pytest-assume)
阿新 • • 發佈:2021-07-26
前言
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) 時失敗了,但是後面的程式碼也執行了。
去期待陌生,去擁抱驚喜。