PyTestでのテスト用にディレクトリを切ることと,そのときにモジュールがインポート失敗する場合の対処方法です.

目次

  1. 前提
  2. テストを読み込ませる
  3. モジュールの読み込み失敗対策

前提

  • プロジェクトのトップをカレントディレクトリにしてテストを実行
  • プロジェクトの直下にtestディレクトリがあり,テストはそこに格納されている

テストを読み込ませる

テストファイル群を格納したディレクトリへpytestのパスを通すには,プロジェクトの直下にtestディレクトリがある場合だと,pytest.iniを作り,

[pytest]

testpaths = test

と書きます.

モジュールの読み込み失敗対策

testディレクトリより上の階層にスクリプト本体があるので,testディレクトリ内のファイルからimportしようとすると,「モジュールを呼び出せない」というエラーが出ます.

テスト用のファイルから本体のスクリプトのインポートを可能にするためにパスを通せばよいので,pytest.iniを微修正して

[pytest]

pythonpath = .
testpaths = test

とします.
プロジェクト直下にsrcディレクトリを作って本体を置くのであれば,

pythonpath = src

です.