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에서 srcDIR) :
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레이아웃을! 설치된 패키지가 아닌 리포지토리에서 코드를 테스트하게됩니다. 당신이 그것을해야한다면, 아마도 srcdir 이 전혀 필요하지 않을 수도 있습니다 .
여기서 갈 곳
물론, conftest모듈은 소스 코드 발견을 돕는 일부 파일이 아닙니다. 여기에서 pytest프레임 워크 의 모든 프로젝트 별 개선 사항 과 테스트 스위트의 사용자 정의가 발생합니다. 문서 전체 pytest에 conftest흩어져있는 모듈 에 대한 많은 정보가 있습니다 . 로 시작 : 로컬 디렉토리 별 플러그인conftest.py
또한 SO는 conftest모듈 에 대한 훌륭한 질문 이 있습니다 .py.test에서 conftest.py 파일의 사용법은 무엇입니까?