JenkinsとPythonの連携

はじめに

今回は、Jenkins と Python の連携についてです。

使用するツールは、とても便利なテストフレームワーク nose と
カバレッジ coverage との連携についてです。

nose連携

まず、 nose との連携からです。
nose をそのまま実行したのでは、Jenkinsに取り込めないため、XUnit形式のレポートを出力する必要があります。
XUnit形式のレポート出力には、 unittest-xml-reporting を導入する必要があります。
unittest-xml-reporting がインストールされていると、noseの出力レポートをXUnit形式にすることができます。

インストール

 $ easy_install -ZU nose
 $ easy_install -ZU unittest-xml-reporting

nose の使い方は割愛しますが、コマンドから --with-xunit オプションを付与することで
XUnit形式のレポートを出力させることができます。

レポート結果の集約には、ビルド後の処理に、JUnitテスト結果の集計 へチェックをいれ出力ファイルとなる nosetests.xml を入力します。


coverage 連携

python-coverage を利用するには、 Cobertura Plugin が必要です。
まずは、プラグインをインストールします。

ジョブ中に coverage を XML 形式で出力させます。
ビルド後の処理に、Cobertura カバレッジ・レポートの集計を実行し、出力ファイルを読み込ませます。


最後に

実行結果です。

CIを継続するにあたって、テスト件数の増加とカバレッジの増加が
可視化されているのはモチベーションにつながるので是非とも導入しましょう。