라이브러리를 만들 때 「Python 3.9, 3.10, 3.11, 3.12 모두에서 동작해야 한다」 같은 요구가 있습니다.
매번 가상환경 만들어 테스트하기 번거로움 — tox가 「여러 환경에서 자동으로 테스트 실행」을 처리합니다.
기본 설정.
tox.ini 파일에 환경 정의.
[tox] envlist = py39, py310, py311.
[testenv] deps = pytest commands = pytest.
tox 명령 한 번으로 세 파이썬 버전에서 가상환경 생성 → 의존성 설치 → 테스트 실행.
환경별 차이.
[testenv:py39] deps = ...
— 특정 버전에 다른 의존성.
[testenv:lint] deps = flake8 commands = flake8 .
— 「lint」라는 별도 환경.
tox -e lint로 lint만 실행.
pyenv·conda와 결합.
시스템에 여러 파이썬 버전 설치 필요(tox가 자동으로 만들지 않음).
pyenv install 3.9.x 3.10.x ...로 미리 설치, tox가 그 버전들을 사용.
CI에서 활용.
GitHub Actions 매트릭스 빌드와 결합 — 5개 OS x 4개 파이썬 버전 = 20개 조합 자동 테스트.
라이브러리 호환성 검증의 표준 패턴.
모던 대안으로 nox(파이썬 코드로 설정)도 있음.
한 줄 요약
tox는 여러 파이썬 버전·환경에서 테스트를 자동 실행합니다.
tox.ini로 환경 정의, 라이브러리 호환성 검증의 표준.
모던 대안으로 nox.
더 알아볼 것
- nox — 파이썬으로 설정하는 tox
- pyenv로 다중 버전 관리
- GitHub Actions 매트릭스 빌드