Pytest-Xfail / Skip 테스트

이 장에서는 Pytest의 Skip 및 Xfail 테스트에 대해 알아 봅니다.

이제 아래 상황을 고려하십시오.

  • 어떤 이유로 인해 테스트는 한동안 관련이 없습니다.
  • 새로운 기능이 구현되고 있으며 이미 해당 기능에 대한 테스트를 추가했습니다.

이러한 상황에서 테스트를 xfail하거나 건너 뛸 수있는 옵션이 있습니다.

Pytest는 xfailed 테스트를 실행하지만 일부 실패하거나 통과 한 테스트로 간주되지 않습니다. 테스트가 실패하더라도이 테스트의 세부 사항은 인쇄되지 않습니다 (pytest는 일반적으로 실패한 테스트 세부 사항을 인쇄 함을 기억하십시오). 다음 마커를 사용하여 테스트를 xfail 할 수 있습니다.

@pytest.mark.xfail

테스트를 건너 뛰면 테스트가 실행되지 않습니다. 다음 마커를 사용하여 테스트를 건너 뛸 수 있습니다.

@pytest.mark.skip

나중에 테스트가 적절 해지면 마커를 제거 할 수 있습니다.

편집 test_compare.py 이미 xfail을 포함하고 마커를 건너 뛰어야합니다.

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
============================