픽스처 정리(Teardown)

Python 테스트 입문

Alexander Levin

Data Scientist

픽스처 teardown이란

  • 픽스처 Teardown: 테스트 환경 설정 중 생성/할당된 자원을 정리(tear down)하는 과정.

"피크닉" 비유:

  1. 친구를 부르고 음식을 준비한다
  2. 즐긴다!
  3. 정리한다 — 이것이 teardown
Python 테스트 입문

왜 teardown을 쓰나

테스트 끝에 환경을 정리하는 것이 중요합니다. teardown을 사용하지 않으면 심각한 문제가 생길 수 있습니다:

  • 메모리 누수
  • 실행 속도 저하 및 성능 문제
  • 잘못된 테스트 결과
  • 파이프라인 실패 및 오류
Python 테스트 입문

언제 사용할까

사용 시점:

  • 큰 객체
  • 테스트가 2개 이상
  • autouse 사용

불필요한 경우:

  • 테스트 1개인 단일 간단 스크립트
Python 테스트 입문

Python의 지연 평가

  • yield는 제너레이터를 만드는 Python 키워드입니다
# Example of generator function
def lazy_increment(n):
    for i in range(n):
        yield i
f = lazy_increment(5)
next(f) # 0
next(f) # 1
next(f) # 2
Python 테스트 입문

사용 방법

사용 방법:

  • returnyield로 바꾼다
  • yield 뒤에 정리 코드를 둔다
  • 설정 코드는 yield 이전에만 둔다
Python 테스트 입문

Teardown 예시

@pytest.fixture
def init_list():
    return []

@pytest.fixture(autouse=True)
def add_numbers_to_list(init_list):
    # Fixture Setup
    init_list.extend([i for i in range(10)])
    # Fixture output
    yield init_list
    # Teardown statement
    init_list.clear()

def test_9(init_list):
    assert 9 in init_list
Python 테스트 입문

요약

  • 정의: 픽스처 Teardown은 설정 중 할당된 자원을 정리하는 과정입니다.
  • 사용:
    • return 대신 yield 사용
    • yield 뒤에 정리 코드 배치
  • 장점:
    • 소프트웨어 오류 예방
    • 성능 저하 방지
  • 사용 시점: 테스트가 2개 이상이면 항상!
Python 테스트 입문

Vamos praticar!

Python 테스트 입문

Preparing Video For Download...