[파이썬] pytest 테스트 스위트 구성하기

pytest는 파이썬 테스트 프레임워크로, 효율적인 테스트 작성을 돕습니다. pytest를 사용하여 테스트 스위트를 구성하면 모듈, 클래스 또는 함수 별로 테스트를 그룹화하여 실행할 수 있습니다. 이 글에서는 pytest를 사용하여 테스트 스위트를 구성하는 방법에 대해 알아보겠습니다.

pytest.ini 파일 생성하기

테스트 스위트를 구성하기 전에 pytest.ini 파일을 생성해야 합니다. 이 파일은 pytest 설정을 저장하는 데 사용됩니다. 다음 명령을 통해 테스트 스위트를 실행하는 데 사용될 pytest.ini 파일을 생성할 수 있습니다.

$ touch pytest.ini

테스트 스위트 구성하기

모듈별 테스트 구성하기

각각의 모듈에 대해 별도의 테스트를 작성하려면 테스트 파일을 모듈과 동일한 디렉토리에 생성해야 합니다. 테스트 파일의 이름은 test_로 시작해야 하며 .py로 끝나야 합니다. 예를 들어, my_module.py 모듈을 테스트하는 테스트 파일은 test_my_module.py로 이름이 지정되어야 합니다.

# test_my_module.py

def test_example():
    assert 1 + 1 == 2

클래스별 테스트 구성하기

클래스별 테스트를 작성하려면 테스트 파일 안에 테스트를 포함한 클래스를 작성해야 합니다. 클래스는 Test로 시작해야 하며, unittest.TestCase 클래스를 상속받아야 합니다. 예를 들어, my_class.py 클래스를 테스트하는 테스트 파일은 다음과 같이 작성할 수 있습니다.

# test_my_class.py
import pytest
from my_class import MyClass

class TestMyClass:
    def test_method(self):
        my_obj = MyClass()
        assert my_obj.method() == 'Hello World'

함수별 테스트 구성하기

개별 함수를 테스트하려는 경우, 테스트 파일에 별도의 테스트 함수를 작성합니다. 테스트 함수는 test_로 시작해야 하며, 검증과정에 사용되는 assert 문을 포함해야 합니다. 예를 들어, my_function 함수를 테스트하는 테스트 파일은 다음과 같이 작성할 수 있습니다.

# test_my_function.py

def test_my_function():
    result = my_function(5)
    assert result == 10

테스트 스위트 실행하기

pytest를 사용하여 테스트 스위트를 실행하려면 다음 명령을 실행합니다.

$ pytest

pytest는 테스트 스위트에 속한 모든 테스트를 찾아 실행합니다.

pytest는 테스트 파일 및 함수의 이름을 통해 자동으로 테스트 스위트를 구성합니다. 테스트 파일은 test_로 시작해야 하며, 테스트 함수는 test_로 시작해야 합니다. 실행 중 pytest는 테스트 결과를 상세하게 보여주며, 실패한 테스트의 이유를 자세히 설명합니다.

pytest를 사용하여 테스트 스위트를 구성하면 테스트를 구조화하고 관리하기 쉬워집니다. 테스트 스위트를 실행하면 테스트 커버리지를 확인하고 프로덕션 코드의 신뢰성을 높일 수 있습니다.