테스트 마커 적용

Python 테스트 입문

Alexander Levin

Data Scientist

테스트 마커 개요

  • 사용 사례 1: 조건이 만족되면 테스트 건너뛰기
  • 사용 사례 2: 이 테스트는 실패가 예상됨

  • 테스트 마커: pytest의 테스트에 붙이는 태그

  • 태그(마크)로 특정 테스트 동작을 지정할 수 있음
Python 테스트 입문

마커 구문

  • 데코레이터: 객체 구조를 바꾸지 않고 기능을 추가하는 Python 디자인 패턴
  • 테스트 마커 구문@pytest.mark 데코레이터로 시작합니다:
import pytest

def get_length(string):
    return len(string)

# 테스트 마커 구문
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Python 테스트 입문

Skip 및 Skipif 마커

  • @pytest.mark.skip 사용: 언제나 테스트를 건너뜀
  • @pytest.mark.skipif 사용: 조건이 True이면 건너뜀
Python 테스트 입문

Skip 마커 예시

  • @pytest.mark.skip 사용: 테스트를 무기한 건너뜁니다.
import pytest
def get_length(string):
    return len(string)

# skip 마커 예시
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Python 테스트 입문

Skip 마커 예시: 출력

  • 건너뛴 테스트의 출력:

pytest.mark.skip 예시

Python 테스트 입문

Skipif 마커 예시

  • @pytest.mark.skipif 사용: 주어진 조건이 True이면 테스트를 건너뜁니다.
import pytest
def get_length(string):
    return len(string)

# skipif 마커 예시
@pytest.mark.skipif('2 * 2 == 5')
def test_get_len():
    assert get_length('abc') == 3
Python 테스트 입문

Skipif 마커 예시: 출력

  • 조건부로 건너뛴 테스트의 출력:

pytest.mark.skipif 예시

Python 테스트 입문

Xfail 마커

  • @pytest.mark.xfail 사용: 테스트가 실패할 것으로 예상될 때
import pytest

def gen_sequence(n):
    return list(range(1, n+1))

# xfail 마커 예시
@pytest.mark.xfail
def test_gen_seq():
    assert gen_sequence(-1)
Python 테스트 입문

Xfail 마커: 출력

  • 실패가 예상되는 테스트의 출력:

pytest.mark.xfail 예시

Python 테스트 입문

요약

테스트 마커:

  • pytest의 테스트 속성
  • 특정 테스트의 동작을 지정하는 데 사용
  • 구문은 @pytest.mark.name_of_the_marker로 시작
  • pytest 기본 마커:
    • @pytest.mark.xfail
    • @pytest.mark.skip
    • @pytest.mark.skipif
Python 테스트 입문

연습해 봅시다!

Python 테스트 입문

Preparing Video For Download...