Pythonスクリプトに対してユニットテストするときのディレクトリ構成

フレームワークを使って開発しているとユニットテスト用にディレクトリが用意されていることもあるが、単体のPythonスクリプトに対してユニットテストを書くときはディレクトリ構成を考える必要がある。やはりユニットテストとそれ以外は違うディレクトリに配置したい。この記事ではディレクトリ構成を紹介する。

ディレクトリ構成

new_project
├── project_name
│   ├── __init__.py
│   └── hoge.py
└── tests
    ├── __init__.py
    └── test_hoge.py

空の __init__.pyディレクトリに置きパッケージ化することで、ディレクトリの下のファイルを読めるようにしている。 これによって、new_project以下からtests以下のテストを実行すると、project_name以下のファイルをimport文で読み込むことができる。 tkmru/nao: No-meaning Assembly Omitter for IDA proでもこのようなディレクトリ構成にしている。

なお、unittestモジュールを使ったテストの実行は以下のコマンドでできる。

テストすべてを実行

python -m unittest discover

テストケースを指定

python -m unittest tests.ファイル名.クラス名

メソッドを指定

python -m unittest tests.ファイル名.クラス名.メソッド名

参考資料