[파이썬] pytest 병렬 테스트 실행하기

테스트 코드가 많아지면 실행 시간이 오래 걸리는 경우가 발생할 수 있습니다. 이러한 상황에서 pytest를 사용하여 테스트를 병렬로 실행할 수 있습니다. 병렬 실행은 여러 테스트를 동시에 실행하므로 실행 시간을 크게 단축시킬 수 있습니다.

pytest 병렬 실행을 위한 설정

pytest에서 병렬 실행을 위해서는 몇 가지 설정이 필요합니다. 아래의 단계를 따라서 설정해보겠습니다.

1. pytest-xdist 설치

병렬 실행을 위해서는 pytest-xdist 패키지가 필요합니다. 아래의 명령어를 사용해서 패키지를 설치합니다.

pip install pytest-xdist

2. pytest 설정 파일 생성

pytest의 실행에 사용되는 설정 파일인 pytest.ini를 생성합니다. 프로젝트 루트 디렉토리에 pytest.ini 파일을 생성하고, 다음과 같이 설정값을 추가합니다.

[pytest]
addopts = -n auto

-n 옵션은 pytest-xdist 에서 사용되는 옵션으로, ‘auto’를 설정하면 사용 가능한 CPU의 수에 따라 적절한 병렬 수행을 자동으로 결정합니다.

병렬 테스트 실행하기

테스트를 병렬로 실행하기 위해서는 쉘에서 pytest 명령어를 실행하면 됩니다. 아래와 같이 명령어를 입력합니다.

pytest

pytest는 설정 파일을 사용하여 테스트를 병렬로 실행합니다. 테스트 결과도 별도로 출력되므로 각 테스트의 상태를 확인할 수 있습니다.

pytest 병렬 실행 예시

import pytest
import time

# 테스트 함수 1
def test_func1():
    time.sleep(1)
    assert True

# 테스트 함수 2
def test_func2():
    time.sleep(1)
    assert True

# 테스트 함수 3
def test_func3():
    time.sleep(1)
    assert True

위의 예시 코드에는 3개의 테스트 함수가 있습니다. 각 테스트 함수는 time.sleep(1)을 통해 1초 동안 대기한 후 assert True를 호출합니다.

위의 코드를 저장하고 pytest 명령어를 실행하면 pytest는 설정 파일을 참조하여 테스트를 병렬로 실행합니다. 실행 결과는 다음과 같습니다.

=== 3 passed in 1.04 seconds ===

모든 테스트 케이스가 통과되었으며, 실행 시간은 1.04초 걸렸습니다.

병렬 테스트 실행은 테스트 수행 시간을 크게 단축시켜주므로, 대규모 테스트 코드를 다룰 때 특히 유용합니다.

결론

pytest를 사용하여 테스트를 병렬로 실행할 수 있으며, 병렬 실행은 실행 시간을 단축시키는데 도움이 됩니다. pytest-xdist 패키지를 설치하고 pytest 설정 파일을 작성하여 테스트를 병렬로 실행할 수 있습니다.

병렬 실행은 테스트 수행 시간을 단축시키는 중요한 기능이므로, 테스트 코드 작성 시 고려해보세요.