nose でテスト実行時のカバレッジを取得する。

はじめに

nose の組み込みプラグインを利用するとテストで実行された時のカバレッジを取得できます。
テスト実行時のカバレッジを取得できるので、テストでカバーできていない範囲など確認できます。

カバレッジを取得する

nose と python-coverage がインストールされている必要があります。
nosetests コマンド実行時に、 --with-coverage オプションを付けることでカバレッジを取得できます。
--cover-tests を付与すると実行されたテスト用コードのカバレッジを取得できます。

インストール手順

 $ easy_install -ZU nose
 $ easy_install -ZU coverage

nose からのカバレッジ取得し、HTMLに変換する。

 $ cd myproject
 $ nosetests -v --with-coverage tests/test.py
 $ coverage html
  • coverage xml とすることで、Jenkins Cobertura Plugin と連携できます。

Jenkins との連携例

 $ nosetests -v -w tests/ --with-coverage --with-xunit
 $ coverage xml
  • テスト結果を xunit形式で出力し、カバレッジを同時に取得しています。
  • テスト実行後にプラグインで読み込めるように、xml形式に変換しています。