PyTestでのテストディレクトリを分けたらモジュールのインポートに失敗した
PyTestでのテスト用にディレクトリを切ることと,そのときにモジュールがインポート失敗する場合の対処方法です.
目次
前提
- プロジェクトのトップをカレントディレクトリにしてテストを実行
- プロジェクトの直下にtestディレクトリがあり,テストはそこに格納されている
テストを読み込ませる
テストファイル群を格納したディレクトリへpytestのパスを通すには,プロジェクトの直下にtestディレクトリがある場合だと,pytest.iniを作り,
[pytest] |
と書きます.
モジュールの読み込み失敗対策
testディレクトリより上の階層にスクリプト本体があるので,testディレクトリ内のファイルからimportしようとすると,「モジュールを呼び出せない」というエラーが出ます.
テスト用のファイルから本体のスクリプトのインポートを可能にするためにパスを通せばよいので,pytest.iniを微修正して
[pytest] |
とします.
プロジェクト直下にsrcディレクトリを作って本体を置くのであれば,
pythonpath = src |
です.