Logo
내 게시판 만들기
파이썬

parametrize — 데이터 기반 테스트

토순이 | 2026.04.27 13:14:03
조회 14 | 추천 0

「같은 로직을 여러 입력으로 테스트」하는 패턴이 매우 자주 나옵니다.

같은 코드를 복붙하는 대신 pytest의 parametrize로 「데이터를 외부에서 주입」하면 한 함수로 다 처리 가능합니다.



기본 사용.

import pytest.

@pytest.mark.parametrize("a, b, expected", [(1, 2, 3), (5, 5, 10), (-1, 1, 0)]) def test_add(a, b, expected): assert add(a, b) == expected.

한 함수가 3번 실행 — 입력만 다른.



실행 시 명확한 표시.

pytest -v로 보면 test_add[1-2-3], test_add[5-5-10], test_add[-1-1-0] 식으로 각각의 케이스가 보임.

어느 입력에서 실패했는지 즉시 식별.



id로 가독성 향상.

@pytest.mark.parametrize("input,expected", [("hello", 5), ("안녕", 2)], ids=["english", "korean"]) — 자동 생성된 이상한 ID 대신 의미 있는 이름.



fixture와 결합.

fixture도 파라미터화 가능.

@pytest.fixture(params=["sqlite", "postgres"]) def db(request): ...

— 같은 테스트가 두 DB로 실행.

「하나의 테스트로 여러 환경 검증」 패턴.




한 줄 요약


parametrize는 같은 테스트를 여러 입력으로 반복 실행.

id로 가독성, fixture 파라미터로 환경 다중화.

테스트 코드 중복 제거의 결정타.




더 알아볼 것


- 여러 parametrize 중첩

- indirect 파라미터 — fixture 경유

- Hypothesis — 속성 기반 테스트

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
191 부엉이 26/04/27 14 0
190 곰돌이 26/04/27 17 0
189 부엉이 26/04/27 16 0
188 부엉이 26/04/27 15 0
187 멍뭉이 26/04/27 13 0
186 부엉이 26/04/27 14 0
185 햇살이 26/04/27 17 0
184 곰돌이 26/04/27 15 0
183 부엉이 26/04/27 13 0
182 멍뭉이 26/04/27 16 0
181 부엉이 26/04/27 14 0
180 야옹이 26/04/27 15 0
179 햇살이 26/04/27 18 0
178 야옹이 26/04/27 16 0
177 햇살이 26/04/27 16 0
176 너구리 26/04/27 14 0
175 멍뭉이 26/04/27 14 0
174 곰돌이 26/04/27 15 0
173 토순이 26/04/27 12 0
172 토순이 26/04/27 17 0
171 햇살이 26/04/27 14 0
170 멍뭉이 26/04/27 13 0
169 토순이 26/04/27 14 0
168 다람쥐 26/04/27 15 0
167 곰돌이 26/04/27 17 0
166 다람쥐 26/04/27 17 0
165 토순이 26/04/27 15 0
164 구름이 26/04/27 20 0
163 곰돌이 26/04/27 15 0
162 다람쥐 26/04/27 13 0
신고하기

신고 사유를 선택해 주세요.