Pytest-xfail-skip-tests

提供:Dev Guides
移動先:案内検索

Pytest-Xfail/Skipテスト

この章では、PytestのSkipおよびXfailテストについて学習します。

今、以下の状況を考慮してください-

  • 何らかの理由により、テストはしばらくの間関連性がありません。
  • 新しい機能が実装されており、その機能のテストが既に追加されています。

これらの状況では、テストをxfailするか、テストをスキップするオプションがあります。

Pytestはxfailedテストを実行しますが、一部のテストが失敗または合格したとは見なされません。 これらのテストの詳細は、テストが失敗しても印刷されません(通常、pytestは失敗したテストの詳細を印刷することに注意してください)。 私たちは次のマーカーを使用してテストをxfailすることができます-

@pytest.mark.xfail

テストをスキップすると、テストは実行されません。 次のマーカーを使用してテストをスキップできます-

@pytest.mark.skip

後で、テストが適切になったら、マーカーを削除できます。

既にxfailとskipマーカーを含める必要がある test_compare.py を編集します-

import pytest
@pytest.mark.xfail
@pytest.mark.great
def test_greater():
   num = 100
   assert num > 100

@pytest.mark.xfail
@pytest.mark.great
def test_greater_equal():
   num = 100
   assert num >= 100

@pytest.mark.skip
@pytest.mark.others
def test_less():
   num = 100
   assert num < 200

次のコマンドを使用してテストを実行します-

pytest test_compare.py -v

実行すると、上記のコマンドは次の結果を生成します-

test_compare.py::test_greater xfail
test_compare.py::test_greater_equal XPASS
test_compare.py::test_less SKIPPED
============================ 1 skipped, 1 xfailed, 1 xpassed in 0.06 seconds
============================