[python] tox와 Continuous Integration(CI) 툴을 함께 사용하는 방법은 무엇인가요?

tox와 CI를 함께 사용하는 방법을 알아보겠습니다.

TOC


tox와 CI를 함께 사용하는 이유

보다 효율적인 테스트 관리와 코드 품질을 유지하기 위해서 tox와 CI를 함께 사용하는 것이 좋습니다. tox를 사용하면 프로젝트를 여러 파이썬 버전 및 환경에서 테스트할 수 있으며, CI를 이용하면 코드가 변경될 때마다 테스트가 자동으로 실행되어 안정성을 확보할 수 있습니다.


tox를 사용한 테스트 환경 구성

프로젝트 루트 디렉토리에 tox.ini 파일을 생성하여 원하는 환경 및 테스트 명령을 설정합니다.

예를 들어, 다음과 같은 tox.ini 파일을 작성할 수 있습니다.

[tox]
envlist = py36, py37, py38

[testenv]
commands = pytest
deps = pytest

이렇게 구성된 tox.ini 파일을 실행하면 지정된 파이썬 버전(py36, py37, py38)에서 pytest를 실행하여 테스트를 수행합니다.


CI 툴과의 통합

CI 툴에는 여러 가지 옵션이 있지만, 예를 들어 Jenkins, Travis CI, GitHub Actions 등을 사용할 수 있습니다. 각 CI 툴에 맞게 프로젝트 루트 디렉토리에 해당 CI 툴 설정 파일을 작성하여 tox 명령을 실행하도록 설정합니다.

예를 들어, GitHub Actions를 사용하는 경우 다음과 같은 .github/workflows/main.yml 파일을 작성할 수 있습니다.

name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.8'

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install tox

    - name: Run tests
      run: tox

이렇게 설정된 GitHub Actions는 코드가 푸시되거나 풀리퀘스트를 받으면 파이썬 3.8 환경에서 tox를 실행하여 테스트를 수행합니다.


결론

tox와 CI를 함께 사용하면 프로젝트의 테스트 환경을 효율적으로 관리하고, 코드 변경이 발생할 때마다 품질을 유지할 수 있습니다. 이러한 환경 구성을 통해 안정적인 소프트웨어를 개발하는 데 도움이 될 것입니다.


본 포스트는 다음을 참고하여 작성되었습니다.