2
私は現在、パラメータ化されたテスト(> 1M)の大きなスイートを実行しているプロジェクトで作業しています。テストは無作為に生成されたユースケースであり、この大規模なテスト空間では、実行ごとに特定のエッジケースが〜1〜2%で失敗することが予想されます。失敗率の引数を渡すことができる、またはこの動作を処理するPytestの実装はありますか?PyTest:許容失敗率
私は現在、パラメータ化されたテスト(> 1M)の大きなスイートを実行しているプロジェクトで作業しています。テストは無作為に生成されたユースケースであり、この大規模なテスト空間では、実行ごとに特定のエッジケースが〜1〜2%で失敗することが予想されます。失敗率の引数を渡すことができる、またはこの動作を処理するPytestの実装はありますか?PyTest:許容失敗率
pytest
コマンドの終了ステータスを変更したいと思いますが、pytest_sessionfinish
という名前のnonpublic hookがあります。 、ここで
$ pytest --tb=no -q tests.py
F.. [100%]
1 failed, 2 passed in 0.06 seconds
故障率が1/3 == 33.3%
です:
def test_spam():
assert 0
def test_ham():
pass
def test_eggs():
pass
とconftest.pyでフック:
import pytest, _pytest
ACCEPTABLE_FAILURE_RATE = 50
@pytest.hookimpl()
def pytest_sessionfinish(session, exitstatus):
if exitstatus != _pytest.main.EXIT_TESTSFAILED:
return
failure_rate = (100.0 * session.testsfailed)/session.testscollected
if failure_rate <= ACCEPTABLE_FAILURE_RATE:
session.exitstatus = 0
が、その後pytestを呼び出す
では、次のテストを持って考えます50%未満:
$ echo $?
0
終了ステータスpytestは0です。
残念@georgexsh。私は一週間ずっと旅をしています。あなたが提案した修正プログラムはうまくいくようですが、確かに良い実装です。私は来週、より多くのフィードバックを得る予定です。 –
フィードバックはありますか? – georgexsh