[파이썬] pytest 테스트와 디버깅

Python 프로젝트를 개발하고 유지보수하는 동안 테스트와 디버깅은 매우 중요합니다. 테스트를 통해 코드의 정확성과 안정성을 확인하고, 디버깅을 통해 오류와 버그를 찾아내고 해결할 수 있습니다. 이를 위해 Python 개발자들은 pytest와 같은 테스트 프레임워크를 사용합니다. 이 게시물에서는 pytest를 사용한 테스트와 디버깅에 대해 알아보겠습니다.

pytest 소개

pytest는 Python 테스트를 위한 강력하고 인기 있는 프레임워크입니다. unittest와 비교하여 다양한 기능과 유연성을 제공하여 개발자들에게 더 편리한 테스트 환경을 제공합니다. 아래는 pytest의 일반적인 특징들입니다.

pytest 설치

pytest를 사용하기 위해 먼저 설치해야 합니다. pip를 사용하여 설치할 수 있습니다.

pip install pytest

pytest 테스트 작성하기

pytest는 테스트를 작성하기 위해 간단하고 직관적인 문법을 제공합니다. 테스트 파일은 test_*.py 또는 *_test.py와 같은 이름을 가져야 하며, 테스트 함수는 test_로 시작해야 합니다. 아래는 간단한 calc.py 모듈을 테스트하는 예제입니다.

# calc.py

def add(a, b):
    return a + b
# test_calc.py

import pytest
from calc import add

def test_addition():
    result = add(2, 3)
    assert result == 5

위의 예제에서는 add 함수를 테스트하기 위해 test_addition 함수를 작성했습니다. assert 문을 사용하여 예상 결과인 5와 실제 결과를 비교하고, 일치하지 않으면 오류를 발생시킵니다.

pytest 실행하기

pytest는 명령줄 인터페이스를 제공하여 테스트를 실행할 수 있습니다. 프로젝트의 루트 디렉토리에서 아래와 같은 명령어를 입력하면 모든 테스트를 실행할 수 있습니다.

pytest

결과는 실행된 테스트의 개수, 성공한 테스트의 개수, 실패한 테스트의 개수 등을 보여줍니다.

디버깅

pytest로 테스트를 작성하면서 버그를 찾거나 오류를 디버깅해야 할 때가 있습니다. pytest는 pdb를 내장하고 있어 디버깅 과정을 지원합니다. pytest가 중단될 때 디버깅 세션을 시작하기 위해 --pdb 플래그를 사용할 수 있습니다.

pytest --pdb

테스트 중에 특정 지점에서 중단되었을 때, pdb 명령어를 사용하여 변수의 값 등을 확인하고 오류를 추적할 수 있습니다.

결론

이렇게 pytest를 사용하여 테스트와 디버깅을 수행할 수 있습니다. pytest는 간결하고 직관적인 문법과 다양한 기능을 제공하여 개발자들이 더 효율적으로 테스트를 작성하고 디버깅을 수행할 수 있도록 도와줍니다. 테스트와 디버깅을 통해 Python 프로젝트의 안정성과 신뢰성을 높여보세요.