ジェンキンス-どのテストが繰り返し失敗したかを知る方法は?


13

CIとジェンキンスは初めてです。WebサービスでTestngベースの自動テストを実行するJavaプロジェクトがあります。自動化テストは、Jenkinsのジョブとして定期的に実行されます。場合によっては、ジョブが長時間にわたって繰り返し失敗することがあります。ただし、実行ごとに、失敗したテストの数は異なります。前回失敗した5回の実行など、どのテストが繰り返し失敗したかを確認したい。これにより、調査が必要なテストの失敗の数を減らすことができます。最後の5回の実行ですべて繰り返されない障害は、無視するか、後で調査することができます。

過去のN回の実行で繰り返し失敗したテストを見つける方法を誰かに教えてもらえますか?


どういうわけか、失敗を簡単に確認できるように、テスト結果を保存する必要があります。Eはエラーを表し、すべてのテストの行全体を表す「XEXX」の形式にすることもできます。そのように、あなたは多くのスペースなしでそれをテキストファイルに保存することができました。
デビッド

すべてのテストの実行ごとに新しい行を作成すると、スクリプトで簡単に表示または分析できます。
デビッド

test-ngプラグインが利用可能で、毎回結果を公開できます...その後、各ビルドを比較して、失敗したテストを通知できます
rohit thomas

@rohitthomas-ビルドを手動で比較することを提案していますか?それは避けたいです。
Erran Morad

「繰り返し失敗した」とはどう思いますか?たとえば、最後の5回の実行で失敗したすべてのテストケース、または5回の実行のうち3回で失敗したすべてのテストケースだけですか?
Michael Kemmerzell

回答:


7

パイプライン内のビルドのオブジェクトからテストが失敗した回数を取得できます。小さなレポートを作成して、次のようにビルドに添付できます。

@NonCPS
def getRepeatedlyFailingTests(int timesFailedAtLeast = 2) {
  currentBuild.rawBuild.getAction(hudson.tasks.junit.TestResultAction.class)
    .getFailedTests()
    // Keep only tests that failed at least twice
    .findAll { it.age >= timesFailedAtLeast }
    .collect { [ "${it.className}.${it.name}".trim(), it.age ] }
}

def saveRepeatedlyFailingTestsReport() {
  def header = [ "test", "times-failed" ]
  def records = getRepeatedlyFailingTests()
  def report = "repeatedly-failing-tests.csv"
  writeCSV file: report, records: [ header ] + records, format: CSVFormat.EXCEL
  archiveArtifacts report
}

saveRepeatedlyFailingTestsReportテスト結果を収集した後に電話をかけると、最新のビルドアーティファクトリンクにレポートが表示されます。


1
これはどの言語ですか?詳細を追加していただけませんか?うまくいけば価値のあるものになるように、賞金を追加します。ありがとう。
Erran Morad

1
@BoratSagdiyevこれは、Jenkinsパイプライン内で使用されるGroovy DSLです。視覚的な支援のみが必要な場合は、パイプラインの知識を必要としないため、私はSoorajの答えを使用します。完全なパイプラインを構築するには、あなたのフリースタイルの仕事を知る必要がありますが、それは問題の範囲外です。
タオル

2

JenkinsのTest Result Analyzerプラグインを使用して、テストの傾向を分析できます。

テスト結果アナライザプラグイン

YouTubeのビデオチュートリアル

インストール

  1. Jenkinsダッシュボードで、[ Jenkinsの管理 ]をクリックします
  2. メニューから[プラグインの管理 ]を選択します
  3. [ 利用可能 ]タブをクリックし、[ フィルター]検索ボックスにアナライザーを入力します。
  4. テスト結果アナライザの左側にあるチェックボックスをクリックし、[再起動せずにインストール ]ボタンをクリックします。

使用法

  1. プロジェクトに移動し、構成をクリックします
  2. [ビルド後のアクション]セクションに移動し、[ビルド後のアクション の追加]ドロップダウンから[ JUnitテスト結果レポートの発行]を選択します
  3. Test report XMLsフィールドで、プロジェクトのTestNg / JUnit xmlのパスを指定します。たとえば- **/target/test-results/*.xml私の場合
  4. 設定を保存します
  5. 次に、ビルドが成功したら、プロジェクトに移動し、左側のメニューにあるテスト結果アナライザをクリックします

リンクをありがとう。しかし、リンクのみの回答はあまり役に立ちません。プラグインを使用して必要なものを実現する方法の簡単な説明を追加していただけませんか?
Erran Morad

プラグインをインストールし、目的のプロジェクトのビルド後のアクションにプラグインを構成します。次に、ビルドが成功したら、プロジェクトの左側のメニューにあるテスト結果アナライザをクリックして結果を確認できます
Sooraj

@Borat Sagdiyev、私はテスト結果アナライザプラグインを構成するための詳細な手順とビデオで回答を更新しました。これがお役に立て
ば幸い
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.