모듈 가져오기 오류가 있는 pytest의 PATH 문제 해결
pytest를 사용하여 계층적 파일 구조가 있는 프로젝트에서 테스트를 실행할 때 다음이 발생할 수 있습니다. 애플리케이션 경로에서 모듈을 가져올 때 "ImportError: No module names ..." 오류가 발생합니다. 이 문제는 필요한 모듈에 대한 경로를 포함하도록 sys.path를 수정해야 하기 때문에 발생합니다.
pytest >= 7에 대한 권장 접근 방식: pythonpath 설정
pytest 버전 7 이상에서는 pythonpath 구성 값을 사용하여 단순화된 솔루션을 제공합니다. 이를 통해 해결 방법 없이 sys.path에 특정 경로를 추가할 수 있습니다. 구성 파일(pyproject.toml 또는 pytest.ini)에서 다음과 같이 포함하려는 경로를 지정할 수 있습니다.
[tool.pytest.ini_options] pythonpath = [ "." ]
[pytest] pythonpath = .
Original Answer for pytest < 7: conftest 솔루션
이전 버전의 pytest(7 미만)를 사용하는 경우 빈 conftest.py 솔루션을 사용할 수 있습니다. 여기에는 프로젝트 루트 디렉터리에 빈 conftest.py 파일을 만드는 작업이 포함됩니다. 그러면 pytest가 conftest.py 파일의 상위 디렉터리를 sys.path에 자동으로 추가하여 가져오기 문제를 해결합니다.
설명
Pytest는 실행 중에 conftest 모듈을 검색합니다. 맞춤형 후크 및 고정 장치를 수집하기 위한 테스트 컬렉션입니다. 이러한 모듈에서 사용자 정의 개체를 가져오기 위해 pytest는 conftest.py의 상위 디렉터리를 sys.path에 추가합니다.
대체 솔루션
이 문제에 대한 추가 솔루션이 존재합니다. 프로젝트 구조:
결론
sys.path를 조정하거나 conftest.py 솔루션을 사용하여 문제를 해결할 수 있습니다. "ImportError: No module names ..." 오류가 발생하고 pytest 환경에서 성공적인 테스트 실행을 보장합니다.
위 내용은 계층적 프로젝트 구조에서 pytest를 사용할 때 'ImportError: No Module Named...' 오류를 어떻게 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!