Pythonのunittestでテストを書く際、親ディレクトリからモジュールをインポートする必要がある場合があります。この記事では、その方法について説明します。

ディレクトリ構造

以下のようなディレクトリ構造を考えてみましょう。

/projectPackage
/projectPackage/package
/projectPackage/package/__init__.py
/projectPackage/package/someModule.py
/projectPackage/package/testing.py
/projectPackage/package/tests
/projectPackage/package/tests/__init__.py
/projectPackage/package/tests/someModuleTests.py

ここで、someModuleTests.pyから親ディレクトリのsomeModule.pyをインポートしたいとします。

解決策

方法1: PYTHONPATHを使用する

テストを親ディレクトリから実行すると、そのディレクトリがPYTHONPATH(現在の作業ディレクトリ)に含まれます。これは、親ディレクトリからテストファイルを実行するか、nosetestのようなツールを使用してパッケージ内のすべてのテストを再帰的に検索することで実現できます。

方法2: unittestのコマンドラインインターフェースを使用する

unittestのコマンドラインインターフェースを使用すると、ディレクトリをsys.pathに追加する必要がありません。以下のように実行できます。

$ cd new_project
$ python -m unittest test_antigravity

これらの方法を使用すると、Pythonのunittestで親ディレクトリからモジュールを簡単にインポートできます。適切な方法を選択して、テストの効率と可読性を向上させましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です