編集: この問題は、gtest 1.4.0 で Google によって修正されました。詳細については、元のバグ レポートを参照してください。
最近、C++ テスト フレームワークを gtest に切り替えました。現在使用できない優れた機能の 1 つは、JUnit スタイルの XML テスト レポートを生成する機能です。これは、hudson ビルド サーバーで読み取ることができます。
gtest テスト スイートによって生成された XML 出力はすべて正当に見えます。
<?xml version="1.0" encoding="UTF-8"?>
<testsuite tests="370" failures="0" disabled="0" errors="0" time="45.61" name="AllTests">
<testsuite name="application" tests="7" failures="0" disabled="0" errors="0" time="8.953">
<testcase name="zero_tasks_on_bootup" status="run" time="0" classname="application" />
...etc.
</testsuite>
</testsuite>
また、ant ビルド スクリプトに JUnitReport タスクを追加しようとしましたが、これは正常に動作し、次のように XML を生成します。
<?xml version="1.0" encoding="UTF-8"?>
<testsuite tests="370" failures="0" disabled="0" errors="0" time="45.61" name="AllTests">
<testsuite name="application" tests="7" failures="0" disabled="0" errors="0" time="8.953">
<testcase name="zero_tasks_on_bootup" status="run" time="0" classname="application" />
...etc.
</testsuite>
</testsuite>
問題は、JUnit テスト結果を公開するように ant に指示し、生のテスト結果 XML または ant JUnitReport タスクで生成されたコンパイル済み結果のいずれかを指すようにすると、常に hudson がそこにテスト結果が見つからないと不平を言うことです。
私は Java の専門家ではないので、ここで何が起こっているのかわかりません。また、JUnit XML がどのように見えるべきかの例を見つけることもできません。誰かが私を正しい方向に向けるのを助けることができますか?