12

ポスト ジョブ スクリプトで Jenkins で実行された (または合格した) テストの数を取得する方法はありますか (たとえば、この数を Github Status API に送信する)。

4

2 に答える 2

19

Publish JUnit test result reportこれらの数値にJenkins プラグインから直接アクセスする方法は見当たりませんでした。

ただし、JUnit XML を正常に解析した後、Jenkins REST API から取得した xml または json をいつでも使用/解析できます。

http://<jenkinsHost>/job/<YourJobName>/<JobID>/testReport/api/json?pretty=true また

より一般的にするには: http://<jenkinsHost>/job/<YourJobName>/lastSuccessfulBuild/testReport/api/json?pretty=true

JSON 出力の場合:

  {
      "duration" : 6109.1104,
      "failCount" : 0,
      "passCount" : 4389,
      "skipCount" : 0,
      "suites" : [
        {
        "cases" : [
          {
            ...
          }
        ],
        "duration" : 0.012,
        "id" : null,
        "name" : "EventTest",
        "stderr" : null,
        "stdout" : null,
        "timestamp" : null
         }
       ]
  }

http://<jenkinsInstanceHost>/job/<YourJobName>/<JobID>/testReport/api/xml

XML 出力の場合:

<testResult>
  <duration>6109.1104</duration>
  <failCount>0</failCount>
  <passCount>4389</passCount>
  <skipCount>0</skipCount>
 <suite>
  <case>
    <age>0</age>
    <className>
     ...
    </className>
    <duration>0.012</duration>
    <failedSince>0</failedSince>
    <name>Loop</name>
    <skipped>false</skipped>
    <status>PASSED</status>
  </case>
  <duration>0.012</duration>
  <name>EventTest</name>
 </suite>
</testResult>
于 2013-04-30T13:24:34.323 に答える
3

テストの実行後に生成された xml の非常に単純な解析を行う単純な bash スクリプトを作成するだけになりました。これをリモートで行う必要がある場合、他の回答が示唆するように API を使用することはクールなアイデアです。私の場合、これはスクリプトです:

total_tests=$(cat test-reports/*.xml | grep "<testsuite" | tr -s " " | cut -d " " -f6 | cut -d "=" -f2 | sed 's/\"//g' | paste -sd+ - | bc)
于 2013-04-30T21:56:03.743 に答える