Python개발 환경과 테스트

pytest 기본과 테스트 구조

Python 코드의 동작을 반복 가능하게 검증하기 위해 pytest 테스트를 어떻게 구성하고 읽는지 정리합니다.

마지막 수정 2026년 3월 22일

기본 패턴

python
def add(a, b):
    return a + b


def test_add_returns_sum():
    assert add(2, 3) == 5

설명

  • 테스트는 "코드가 지금도 기대한 대로 동작하는가"를 자동으로 확인하는 장치입니다. Python에서는 pytest가 가장 널리 쓰이는 기본 도구 중 하나입니다.
  • pytest의 장점은 문법이 가볍다는 점입니다. 클래스 계층이나 복잡한 boilerplate 없이 함수 단위로 바로 테스트를 쓸 수 있어, 입문자가 구조를 읽기 쉽습니다.
  • 좋은 테스트는 준비, 실행, 검증이 명확하게 구분됩니다. fixture는 여러 테스트가 공통으로 쓰는 준비 상태를 재사용할 때 쓰며, 코드 중복을 줄이되 테스트 의도를 흐리지 않게 해 줍니다.
  • 중요한 것은 테스트 개수보다 실패 메시지의 명확성입니다. 어떤 입력에 대해 어떤 결과를 기대했는지가 한눈에 보여야 수정 속도도 빨라집니다.
  • Python을 계속 쓰게 되면 테스트는 선택이 아니라 작업 속도를 지키는 장치가 됩니다. 작은 스크립트라도 핵심 로직은 자동 검증으로 묶어 두는 습관이 오래 갑니다.

빠른 정리

요소역할
test_ 함수테스트 케이스
assert기대 결과 검증
fixture공통 준비 상태 재사용
잘 맞는 곳함수, 변환 로직, 비즈니스 규칙

주의할 점

테스트가 많아도 준비 과정이 너무 크거나 외부 의존성이 많으면 금방 느리고 불안정해집니다. 핵심 로직부터 작고 빠르게 검증하는 구조가 더 오래 갑니다.

참고 링크

2 sources