29

Jenkins で Google テストを使用して単体テストを正常に実行できましたが、gtest によって生成された .xml ファイルを表示する方法がわかりません。gtest は JUnit 形式を満たしていると言われているので、以下のように設定します。

スクリーンショット

しかし、構築後にエラーが発生します。

テスト レポート ファイルが見つかりませんでした。設定ミス?
ビルドステップ 'Publish JUnit test result report' がビルド結果を FAILURE に変更しました
Finished: FAILURE

4

6 に答える 6

24

Fraser の回答は適切で、gtest XML を適切な JTest 形式に変換するには、追加の処理が必要です。

最初に、以下を使用して gtest に結果を XML に出力するように要求します。

mygtestapp --gtest_output=xml:gtestresults.xml

次に、スクリプトで追加の要素を追加して、スキップされたテストに適切にフラグを立てる必要があります。Jenkin の JTest プロセッサでは、ステータスを「notrun」に設定するだけでなく、スキップされたテストに <skiped> 要素が含まれている必要があります。

awk '{ if ($1 == "<testcase" && match($0, "notrun")) print substr($0,0,length($0)-2) "><skipped/></testcase>"; else print $0;}' gtestresults.xml > gtestresults-skipped.xml
mv gtestresults.xml gtestresults.off

これを Windows バッチ ファイルで実行する場合は、awk アクションをファイル内に配置して、引用符の問題を回避します。awk.prog ファイル:

{ if ($1 == "<testcase" && match($0, "notrun")) print substr($0,0,length($0)-2) "><skipped/></testcase>"; else print $0;}

そして、バットファイルに追加を作成します:

awk -f awk.progfile gtestresults.xml > gtestresults-skipped.xml

最後に、JTest プロセッサをビルド後のステップとして指定して、変換された XML を読み取ります。

# Publish JUnit Test Result Report
Test Report XMLs: gtestresults-skipped.xml
于 2012-12-28T19:28:34.103 に答える
10

テスト実行可能ファイルを正しいフラグ (つまり--gtest_output=xml[:DIRECTORY_PATH\|:FILE_PATH]) で実行していますか?

出力から--help:

--gtest_output=xml[:DIRECTORY_PATH\|:FILE_PATH] Generate an XML report in the given directory or with the given file name. FILE_PATH defaults to test_details.xml.

于 2012-07-18T13:55:14.407 に答える
1

結果ファイルが正しい場所に保存されておらず、Jenkinsプラグインがそれを見つけることができません。テストが実行され、XMLファイルが生成された後、それをどこかに保存しますか?

result.xmlを「*」に置き換えて機能させることをお勧めします(これがそこに格納されることになっている唯一のXMLファイルであると想定します)。これが機能する場合は、正しいファイル名での作業を開始します。

構成でも同じ問題が発生しました。生成された結果XMLが、プラグインがキーであると想定する場所に保存されていることを確認します。プロジェクト構成からワークスペースルートを決定できます。

于 2012-08-22T14:47:04.187 に答える
1

Jenkins 構成ページのエラーは、ちょっとしたニシンです。

基本的に、テスト レポートの xml ファイルがビルド ジョブによって生成されていないことが原因です。したがって、次のエラーが表示されます。

Recording test results
No test report files were found. Configuration error? 

もちろん、場所は正しく構成する必要があります。そのためには、この投稿を参照してください。

Grailsで動作するJenkins CIでテストレポートを設定するには?

それで、どのようにエラーを修正しますか?重要なのは、コンソール出力を調べて、テストが正常に実行されたかどうかを確認することです。そうではない可能性があり、それがエラーが発生した理由です。

テストが正常に実行されたら、場所が正しく構成されていれば問題ありません。

JUnit を使用しているため、Java プロジェクトになります。Xcodeを実行していたことを他の人に役立つかもしれない場合に備えて、ここでメモしておきます。テストは実行されていませんでした。

Jenkins コンソール出力のエラーのすぐ上に次のメモが埋め込まれていました。

 note: RunUnitTests exited without running tests because TEST_AFTER_BUILD was set to NO.

Xcode に戻って、UnitTestsターゲットのTest After Buildフラグを設定すると、YESうまくいきました。それはユニットテストセクションの下にあります。もちろん、プロジェクト レベルでフラグを設定し、ターゲットを「その他」に変更して、値を に設定することもできます$(inherited)

于 2012-08-17T11:06:40.077 に答える