【pytest】なんかpytestのドキュメントどおりやるとtestが通らない

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

pytestを改めてしっかり使おうとドキュメントをみたところ、パスの設定間違ってない?というか、ドキュメントどおりにやるとモジュールのパスが通らなかった。

Pytest – Good Integration Practice

次のように指定するように書いてある。

| - setup.py
| - mypkg/ | - __init__.py | - app.py | - view.py | - tests/
|
| - mypkg
| - test_app.py | - test_view.py

しかし、このように実行すると次のようなエラーが。

__________________ ERROR collecting tests/test_app.py ____________________
ImportError while importing test module 'project_dir/tests/test_app.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_app.py:10: in <module>
from mypkg import app
E ModuleNotFoundError: No module named 'mypkg'

エラーの原因としては……なんだろう。ただ解決方法は次のとおり。

| - setup.py
| - mypkg/ 
      | - app.py 
      | - view.py 
| - tests/
     | - __init__.py
     | - mypkg
           | - test_app.py
           | - test_view.py

pkg配下の__init__.pyを外し、tests配下に__init__.pyを置くとテストが通る。
ただ、mypkg配下に__init__.pyを置きたいときはどうするんだろ。

Related posts

コメントを残す