[Python] setuptoolsでテストを実行する方法
はじめに
setuptoolsはPythonのプログラムをインストールしたり配布したりするためのツールですが、これを使えば、セットアップスクリプトがsetup.pyのとき、
$ python setup.py test
とすれば、テストを実行することもできるようになります。
設定方法
以下のようなディレクトリ構造を仮定します。
. `-- src `-- foo `-- tests
すなわち、プロジェクトのトップディレクトリの下にソースコードを収めるsrcディレクトリがあり、その下にfooパッケージがあります。foo.testsパッケージには、テストケース(unittest.TestCaseクラスを継承しているクラス)があるサブパッケージやモジュールがあります。
このとき、以下のようなsetup.pyを記述します。
#! python # -*- coding: utf-8 -*- from setuptools import setup, find_packages setup(name="foo", version="1.0", packages=find_packages("src"), package_dir={"": "src"}, test_suite="foo.tests")
ポイントはsetup関数のtest_suite引数で、これにテストケースがあるパッケージ(この場合foo.tests)の名前を指定します。
こうすることで、
$ python setup.py test
とすれば、test_suite引数で指定されたパッケージ(サブパッケージやサブモジュールも含む)の中にあるすべてのテストケースを実行できます。
テストは冗長モードで実行されます。これを通常どおりに実行するときは、
$ python setup.py test -q
とします。