인프런 커뮤니티 질문&답변

beop Uk님의 프로필 이미지
beop Uk

작성한 질문수

실전! FastAPI 입문

pytest시 import error

해결된 질문

작성

·

1.2K

1

안녕하세요 선생님! 강의 잘 듣고 있습니다.

pytest진행하는 과정에서 똑같이 directory구조 만들고 pytest를 명령어로 입력했더니

ImportError while importing test module: test_main.py 절대경로

Hint: make sure your test modules/packages have valid python names.

라는 Error와 함께 pytest가 진행되지 않아서 해결책좀 질문드리고 싶습니다 ㅠ.

참고로 SwaggerUI로 API test를 해보면 잘 작동합니다!

답변 1

0

신동현님의 프로필 이미지
신동현
지식공유자

안녕하세요. 혹시 tests 디렉토리 아래에 __init__.py 를 생성하셨나요?

beop Uk님의 프로필 이미지
beop Uk
질문자

네네 python package를 만드니까 자동으로 생성 잘 되었습니다

beop Uk님의 프로필 이미지
beop Uk
질문자

image

신동현님의 프로필 이미지
신동현
지식공유자

import 경로에 따른 문제로 추정되는데 원인이 다양할 수 있을 것 같습니다.

먼저 터미널에서 pytest 명령어를 실행하실 때, src 디렉토리를 기준으로 실행하고 계신지 확인 부탁드립니다.

또 터미널에 가상환경 설정이 잘 되어 있는지, 그리고 해당 가상환경에 pytest 라이브러리가 정상적으로 install 되어 있는지 확인 부탁드립니다.

beop Uk님의 프로필 이미지
beop Uk
질문자

말씀하신 내용 확인해보니 모두 잘 되어 있습니다!
python package와 file 이름을 ptest, ptest_main.py로 바꾸니 기존에 뜨던 error는 발생하지 않지만 collected 0 items , no tests ran in 0.01s 라는 문구가 뜨네요 ㅠ

신동현님의 프로필 이미지
신동현
지식공유자

이름을 변경했을 때 동작하지 않는 것은 pytest에서 test로 시작하는 함수와 클래스에 대해서만 테스트 대상으로 선택되기 때문에 그렇습니다.

pytest 대신 pytest tests/test_main.py 명령어로 명시적으로 파일을 지정해서 실행 해보시겠어요?

beop Uk님의 프로필 이미지
beop Uk
질문자

imagezsh에서 PYTHONPATH설정 다시 해주고 terminal껐다가 다시 시작시키니까 이런식으로 바뀌긴 했습니다!
warnings 내용 보니까 pydantic 버전관련해서 알려주는 부분 같고, 1 passed라고 뜨면 잘 된건가요??

신동현님의 프로필 이미지
신동현
지식공유자

네 맞습니다.

beop Uk님의 프로필 이미지
beop Uk
질문자

주말인데도 질문 받아주셔서 정말 감사드립니다 !! 강의 너무 좋습니다 열심히 완강해보겠습니다

신동현님의 프로필 이미지
신동현
지식공유자

감사합니다:D 언제든지 궁금한게 생기면 편하게 질문해주세요.
남은 강의도 재밌게 수강하시고 좋은 주말 보내세요!

beop Uk님의 프로필 이미지
beop Uk

작성한 질문수

질문하기