Pytest 기본적인 테스트 실행 방법

Pytest 기본적인 테스트 실행 방법

Python
Pytest 기본적인 테스트 실행 방법
Author

gabriel yang

Published

October 7, 2024


Pytest: 기본적인 테스트 실행 방법

Python 개발자라면 코드의 품질을 유지하기 위해 테스트를 작성하는 것이 중요하다는 것을 잘 알고 계실 것입니다. pytest는 이러한 테스트를 간편하게 작성하고 실행할 수 있는 인기 있는 테스트 프레임워크입니다. 이 글에서는 pytest의 기본적인 테스트 실행 방법에 대해 알아보겠습니다.

1. Pytest 설치

테스트를 시작하기 전에, pytest를 설치해야 합니다. 터미널에서 다음 명령어를 입력하여 설치할 수 있습니다:

pip install pytest

설치가 완료되면, pytest의 버전을 확인하여 제대로 설치되었는지 확인합니다:

pytest --version

2. 기본적인 테스트 함수 작성

pytest의 가장 기본적인 테스트 작성 방법은 test_로 시작하는 함수를 정의하는 것입니다. 아래는 두 수의 합을 테스트하는 예제 코드입니다.

예제 코드: test_sample.py

# 함수 정의
def add(a, b):
    return a + b

# 테스트 함수
def test_add():
    assert add(2, 3) == 5  # 이 테스트는 성공해야 합니다.
    assert add(1, 1) == 2  # 이 테스트도 성공해야 합니다.

3. 테스트 파일 및 디렉토리 구조

테스트 파일은 보통 test_로 시작하거나 _test로 끝나는 파일명으로 저장합니다. 위의 예제는 test_sample.py라는 파일로 저장할 수 있습니다. 일반적인 프로젝트 구조는 다음과 같습니다:

project/
│
├── src/
│   └── my_module.py
│
└── tests/
    └── test_sample.py

4. 테스트 실행

테스트를 실행하려면 터미널에서 pytest 명령어를 입력하면 됩니다. 현재 디렉토리의 모든 테스트를 자동으로 발견하여 실행합니다.

pytest

출력 결과 예시:

==================== test session starts ====================
collected 1 item

tests/test_sample.py .                                  [100%]

===================== 1 passed in 0.03s =====================

위의 출력에서 .는 테스트가 성공적으로 통과했음을 나타냅니다.

5. 상세한 테스트 결과 보기

기본적으로 pytest는 간략한 결과를 출력하지만, -v (verbose) 플래그를 추가하면 더 많은 정보를 확인할 수 있습니다:

pytest -v

출력 결과 예시:

==================== test session starts ====================
collected 1 item

tests/test_sample.py::test_add PASSED                  [100%]

===================== 1 passed in 0.01s =====================

여기서 tests/test_sample.py::test_add PASSEDtest_add 테스트가 성공했음을 보여줍니다.

6. 특정 테스트 파일 실행

특정 파일의 테스트만 실행하고 싶다면, 해당 파일 경로를 명령어에 포함시킬 수 있습니다:

pytest tests/test_sample.py

이렇게 하면 해당 파일 내의 모든 테스트가 실행됩니다.

7. 특정 테스트 함수 실행

파일 내 특정 테스트 함수만 실행하고 싶을 때는 ::를 사용하여 함수 이름을 지정할 수 있습니다:

pytest tests/test_sample.py::test_add

위 명령어는 test_sample.py 파일의 test_add 함수만 실행합니다.

8. 실패한 테스트 재실행

테스트가 실패할 경우, --maxfail 옵션을 사용하여 최대 실패 횟수를 설정하고, -v 플래그를 추가하여 상세한 정보를 출력할 수 있습니다:

pytest --maxfail=1 -v

이 명령어는 첫 번째 실패가 발생하면 테스트를 중지합니다.