PYTHON · 테스트
파라미터화 테스트
@pytest.mark.parametrize로 여러 입력값에 대해 같은 테스트를 반복 실행합니다.
테스트중급parametrize파라미터pytest테스트
핵심 설명
@pytest.mark.parametrize로 여러 입력값에 대해 같은 테스트를 반복 실행합니다.
Python code
import pytest
# 기본 파라미터화
@pytest.mark.parametrize("input,expected", [
(1, 1),
(2, 4),
(3, 9),
(-1, 1),
(0, 0),
])
def test_square(input, expected):
assert input ** 2 == expected
# 여러 파라미터 조합
@pytest.mark.parametrize("a,b,result", [
(1, 2, 3),
(0, 0, 0),
(-1, 1, 0),
(100, 200, 300),
])
def test_add(a, b, result):
assert a + b == result
# ID 지정으로 가독성 향상
@pytest.mark.parametrize("text,expected", [
pytest.param("hello", "HELLO", id="basic"),
pytest.param("", "", id="empty"),
pytest.param("Hello World", "HELLO WORLD", id="mixed"),
], ids=str)
def test_upper(text, expected):
assert text.upper() == expected
# 다중 parametrize (데카르트 곱)
@pytest.mark.parametrize("x", [1, 2])
@pytest.mark.parametrize("y", [10, 20])
def test_multiply(x, y):
assert x * y > 0 # 4개 조합 테스트
# 조건부 건너뛰기
@pytest.mark.parametrize("n", [
1,
pytest.param(2, marks=pytest.mark.skip(reason="알려진 버그")),
3,
])
def test_with_skip(n):
assert n > 0
print("파라미터화 테스트 패턴 준비 완료")학습 팁
pytest.param(..., id="설명")으로 각 테스트 케이스에 설명을 추가하면 실패 시 원인 파악이 쉽습니다.
주의할 점
파라미터 조합이 너무 많으면 테스트 시간이 폭발적으로 증가합니다. 핵심 경계값과 대표값만 선택하세요.
자주 묻는 질문
파라미터화 테스트란 무엇인가요?
@pytest.mark.parametrize 로 여러 입력값에 대해 같은 테스트를 반복 실행합니다.
파라미터화 테스트 학습 시 주의할 점은 무엇인가요?
파라미터 조합이 너무 많으면 테스트 시간이 폭발적으로 증가합니다. 핵심 경계값과 대표값만 선택하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.