2016-10-25 4 views
1

In einem Jenkins-Pipeline-Job möchte ich Slack-Benachrichtigungen für einzelne Testergebnisse senden. Ich habe einen Gradle Build-Spock-Tests, die eine XML-Datei mit Testergebnissen generiert. Gibt es eine Möglichkeit, auf einzelne Testergebnisse zuzugreifen, ohne die XML-Datei analysieren zu müssen?Wie kann ich einen SlackSend in einem Jenkins-Pipeline-Job für einzelne Testergebnisse konditionieren?

Etwas wie:

if(test_results.TEST1 == 'failure'){ 
    slackSend color: 'danger', message: "TEST1 Failed - ${env.JOB_NAME} 
} 

Antwort

0

Sie könnten dies in tun build.gradle

apply plugin: 'java' 
ext { 
    jenkinsFlag = System.properties['jenkins'] == 'true' 
} 
test { 
    if (jenkinsFlag) { 
     afterTest { TestDescriptor desc, TestResult result -> 
      if (result.resultType == TestResult.ResultType.FAILURE) { 
       slackSend color: 'danger', message: "$desc failed - ${env.JOB_NAME}" 
      } 
     } 
    } 
} 

@see Test.afterTest(Closure)

+0

Ich erhalte den Fehler 'konnte nicht Methode slackSend() für Argumente finden [ test slack send] auf Root-Projekt 'job.Disk_Util'.' –

+0

Hahaha ... Natürlich! Sie müssen dieses Bit schreiben! –

+0

well slackSend ist eine jenkins-Pipeline-Methode, also würde ich das nicht schreiben. Ich dachte, dass du sagst, dass ich locker von Großbuchstaben reden könnte, aber ich vermute, das ist nicht der Fall. Nicht sicher, das wird dann funktionieren –

Verwandte Themen