GoogleTest(gtest)のテスト結果をJenkinsで表示する方法を調べてみた。

GoogleTestで出力されるXML出力結果はJUnitのフォーマット(junitreport Ant タスク)

にもとづいているため、Jenkinsに取り込んで解析することができるらしい。

GoogleTestのテスト結果をXML形式で出力する

テスト実行時に、以下のオプションとともに実行するとxML形式でテスト結果が出力される。 -gtest_output=xml:(ファイル名)がオプションだ。

(プログラム).exe 窶堵test_output=xml:(出力ファイル名).xml

こんな感じでXML出力される。

<?xml version="1.0" encoding="UTF-8"?>
&lt;testsuites tests="3" failures="0" disabled="0" errors="0" time="0.012" name="AllTests">
  &lt;testsuite name="MockNumTest" tests="3" failures="0" disabled="0" errors="0" time="0.006">
    &lt;testcase name="return1" status="run" time="0" classname="MockNumTest" />
    &lt;testcase name="return2" status="run" time="0" classname="MockNumTest" />
    &lt;testcase name="return3" status="run" time="0" classname="MockNumTest" />
  &lt;/testsuite>
&lt;/testsuites>

XML形式のテスト結果をJenkinsで表示する

次はjenkinsの設定。ジョブの設定画面を開く。

[プロジェクトの高度なオプション] > [カスタムワークスペースの使用]

にチェックを入れて、テスト出力ファイルのディレクトリの指定。

[ビルド]を選択して、ビルドを実行するための方法を選択。

ここでは、Windowsバッチコマンドで実行する。

cd "C:\Users\hogehoge\Dropbox\src\mock_study"
make clean
make
target.exe -gtest\_output="xml:test\_result.xml"

Windowsバッチコマンドがでmakeができないときは、

WindowsサービスでJenkinsを立ち上げるのをやめるとよい。

参考:WindowsバッチファイルをJenkinsで起動したらネットにアクセスできない

[ビルド後の処理] > [JUnitテスト結果の集計]を選択。テスト結果ファイル名を入力。

テスト出力結果

こんな感じで出力された。

画像なくなりました

参考リンク

[GoogleTest - 上級ガイド - XMLレポート][4]