Cutter+Jenkinsを使ったC++のテスト(3)

前々回、前回の続きです。ここまでにcutterのインストール方法や使い方、cutterのXML出力をxUnitの出力形式に変換する方法を見てきました。今回は、一連の作業の最後に、実際にジョブとしてビルドスクリプトを設定します。

swiftlife.hatenablog.jp swiftlife.hatenablog.jp

Jenkinsで「新規ジョブ作成」から「フリースタイル・プロジェクトのビルド」を作成します。その設定画面で「ビルド手順の追加」にある「シェルの実行」を選択します。

f:id:swiftlife:20151222235619p:plain

そして、表示される入力エリアにビルド〜テスト実行〜変換のスクリプトを記述します。今回はちょっと乱暴に1スクリプトの中にすべて書いてしまいましたが、ビルドと実行とでは別の「シェルの実行」として分けて書いたほうが良いと思います。いや、そもそもJenkinsのマニュアルで勧められているようにスクリプト自体も外から引っ張ってきた方がいいですね。

#!/bin/sh

#ビルド
cd /Users/me/develop/experiment/cuttertest/test
clang++ -shared test_MyClass.cpp ../myClass.cpp -o test_MyClass.so \
        -I/usr/local/include/cutter -I..  -L/usr/local/lib/ -lcutter

#テストの実施
/usr/local/bin/cutter --xml-report="${WORKSPACE}"/result1.xml .
RESULT=$?

#cutterのXML書式 → xUnitのXML書式へ変換
/usr/bin/xsltproc cutter-to-junit.xsl "${WORKSPACE}"/result1.xml \
        > "${WORKSPACE}"/result2.xml

#テスト結果をビルドの結果にする
exit ${RESULT}

そして、ビルド実行。無事に結果が取得できるようになりました。

f:id:swiftlife:20151226155837p:plain