Problem
App
--__init__.py
--app_file.py
--tests_folder
--test_app_file.py
이런 폴더 구조이고
# test_get_s3_url.py
from get_s3_url import LatestURL
이렇게 import할 패키지의 경로를 지정하고 unittest를 하기 위해 pytest를 입력했는데
ImportError while importing test module '/Users/yeinlee/odk/transcoder/variety/tests/test_get_s3_url.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_get_s3_url.py:8: in <module>
from get_s3_url import LatestURL
E ModuleNotFoundError: No module named 'get_s3_url'
get_s3_url을 찾지 못해서 ModuleNotFoundError가 발생했다.
Solution
https://stackoverflow.com/questions/20985157/py-test-no-module-named
여길 참고해서 tests폴더 안에 __init__.py 빈 파일을 추가했더니 테스트를 pass할 수 있었다.
변경 후 폴더구조:
App
--app_folder
--app_file.py
--tests_folder
--__init__.py
--test_app_file.py
Thinking
tests폴더 안에 __init__.py를 생성해야 __init__.py파일을 기준으로 import한 parent package(여기서는 get_s3_url)의 상대경로를 찾을 수 있는 것 같다.
댓글