[python] tox에서의 테스트 환경을 동적으로 생성하고 관리하는 방법은 무엇인가요?
먼저, tox.ini
파일을 프로젝트 루트 디렉토리에 생성하고, 테스트 환경을 정의합니다. 테스트 환경은 envlist
에 지정된 여러 환경들을 포함할 수 있습니다. 각 환경에 대해 필요한 의존성 패키지를 설치하고, 실행할 명령어를 정의할 수 있습니다.
예를 들어, tox.ini
파일은 다음과 같이 작성할 수 있습니다.
[tox]
envlist = py37, py38, lint
[testenv]
deps =
pytest
coverage
commands =
pytest --cov=my_package tests/
[testenv:lint]
deps =
flake8
commands =
flake8 my_package tests
위의 예제에서 testenv
섹션은 두 가지 환경을 정의하고 있습니다. 첫 번째는 py37
, py38
가상 환경으로, 두 번째는 lint
환경으로 정의되었습니다. 여기서 deps
는 해당 환경에서 필요로 하는 의존성 패키지들을 나열하고, commands
는 해당 환경에서 실행할 명령어를 정의합니다.
이제 tox
명령어를 실행하면, tox.ini
파일에서 정의한 테스트 환경들이 동적으로 생성되고, 관리됩니다. 이를 통해 프로젝트의 다양한 환경에서 코드를 테스트하고, 일관된 방식으로 관리할 수 있습니다.
참고문헌: