pytest-assumeは"テストごとに複数の失敗を許容するpytestプラグイン"です。ここで(README
から取られた)あなたがそれを使用する方法の例です:
import pytest
@pytest.mark.parametrize(('x', 'y'), [(1, 1), (1, 0), (0, 1)])
def test_simple_assume(x, y):
pytest.assume(x == y)
pytest.assume(True)
pytest.assume(False)
アサーションの一部が故障していても、それらはすべてが評価され、報告を受ける:
======================================== FAILURES =========================================
_________________________________ test_simple_assume[1-1] _________________________________
> pytest.assume(False)
test_assume.py:7
y = 1
x = 1
----------------------------------------
Failed Assumptions:1
_________________________________ test_simple_assume[1-0] _________________________________
> pytest.assume(x == y)
test_assume.py:5
y = 0
x = 1
> pytest.assume(False)
test_assume.py:7
y = 0
x = 1
----------------------------------------
Failed Assumptions:2
_________________________________ test_simple_assume[0-1] _________________________________
> pytest.assume(x == y)
test_assume.py:5
y = 1
x = 0
> pytest.assume(False)
test_assume.py:7
y = 1
x = 0
----------------------------------------
Failed Assumptions:2
================================ 3 failed in 0.02 seconds =================================
あなただけ構築することはできませんエラーのリストを作成し、リストが空であると主張しますか? –
私は個々のエラーについて報告したいので、レポートには一致しなかった値のリストが表示されます – ChrisG29
うーん...不一致のリストを構築してそのリストをアサインする方法は?空の場合(エラーの場合はそうではありません) - あなたは "期待された[] [1,2,7,10]のようなリストを取得するでしょうか、そうでないものがありますか? –