conftest
해결책
최소 침습적 솔루션라는 빈 파일을 추가하고 conftest.py
에서 repo/
디렉토리를 :
$ touch repo/conftest.py
그게 다야. 맹 글링하기 위해 커스텀 코드를 작성할 필요가 없으며 , sys.path
드래그 PYTHONPATH
하거나 __init__.py
자신이 속해 있지 않은 디렉토리에 배치 해야합니다.
이후 프로젝트 디렉토리 :
repo
├── conftest.py
├── app.py
├── settings.py
├── models.py
└── tests
└── test_app.py
설명
pytest
에 대한 외모 conftest
테스트 컬렉션 모듈은 사용자 정의 후크 및 비품을 수집하고, 그들로부터 사용자 정의 개체를 가져하기 위해하기 pytest
의 상위 디렉토리에 추가 conftest.py
받는 사람sys.path
(이 경우 repo
디렉토리).
다른 프로젝트 구조
다른 프로젝트 구조가 conftest.py
있는 경우 패키지 루트 디렉토리 (패키지를 포함하지만 패키지 자체는 아니므로)를 포함 하지 않는 루트 디렉토리에 배치하십시오 __init__.py
.
repo
├── conftest.py
├── spam
│ ├── __init__.py
│ ├── bacon.py
│ └── egg.py
├── eggs
│ ├── __init__.py
│ └── sausage.py
└── tests
├── test_bacon.py
└── test_egg.py
src
나열한 것
이 방법은 함께 사용할 수 있지만 src
레이아웃 (장소 conftest.py
에서 src
DIR) :
repo
├── src
│ ├── conftest.py
│ ├── spam
│ │ ├── __init__.py
│ │ ├── bacon.py
│ │ └── egg.py
│ └── eggs
│ ├── __init__.py
│ └── sausage.py
└── tests
├── test_bacon.py
└── test_egg.py
추가 것을주의 src
로 PYTHONPATH
완화시킨다 의미와 혜택 src
레이아웃을! 설치된 패키지가 아닌 리포지토리에서 코드를 테스트하게됩니다. 당신이 그것을해야한다면, 아마도 src
dir 이 전혀 필요하지 않을 수도 있습니다 .
여기서 갈 곳
물론, conftest
모듈은 소스 코드 발견을 돕는 일부 파일이 아닙니다. 여기에서 pytest
프레임 워크 의 모든 프로젝트 별 개선 사항 과 테스트 스위트의 사용자 정의가 발생합니다. 문서 전체 pytest
에 conftest
흩어져있는 모듈 에 대한 많은 정보가 있습니다 . 로 시작 : 로컬 디렉토리 별 플러그인conftest.py
또한 SO는 conftest
모듈 에 대한 훌륭한 질문 이 있습니다 .py.test에서 conftest.py 파일의 사용법은 무엇입니까?