이 문제를 해결하려면 다음 접근 방식을 권장합니다.
1. 'pythonpath' 구성(Pytest >= 7)
Pytest는 'pythonpath' 구성 설정을 통해 sys.path 수정을 가능하게 하는 핵심 플러그인을 도입했습니다. 이 단순화된 솔루션에는 프로젝트의 pyproject.toml 또는 pytest.ini 파일에 다음 줄을 추가하는 작업이 포함됩니다.
repo/
|--app.py
|--settings.py
|--models.py
|--tests/
|--test_app.py
로그인 후 복사
루트 디렉터리에 상대적인 경로 항목을 지정하면 해당 디렉터리를 sys.path에 효과적으로 추가할 수 있습니다. 가져오기 문제를 해결합니다.
2. 'conftest' 솔루션 구현(Pytest < 7)
이전 버전의 pytest의 경우 덜 침해적인 접근 방식은 프로젝트의 루트 디렉터리에 'conftest.py'라는 빈 파일을 만드는 것입니다.
# pyproject.toml
[tool.pytest.ini_options]
pythonpath = [
"."
]
# pytest.ini
[pytest]
pythonpath = .
로그인 후 복사
이렇게 하면 pytest는 자동으로 'conftest.py'의 상위 디렉터리를 sys.path에 추가합니다. 성공적인 가져오기를 가능하게 합니다.
설명:
Pytest는 테스트 수집 중에 'conftest' 모듈을 검색하여 사용자 정의 후크 및 고정 장치를 수집합니다. 이러한 사용자 정의 개체를 가져오기 위해 pytest는 'conftest.py'의 상위 디렉터리를 sys.path에 추가합니다.
$ touch repo/conftest.py
로그인 후 복사
결론:
권장되는 해결 방법 pytest의 가져오기 문제는 사용 중인 버전에 따라 다릅니다. pytest >= 7의 경우 'pythonpath' 구성이 선호되는 반면, pytest < 7, '컨테스트' 솔루션은 여전히 유효합니다.
위 내용은 Pytest에서 'ImportError: No module names...' 오류를 어떻게 수정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!