2016-10-25 1 views
1

Dans un travail de pipeline Jenkins, je souhaite envoyer des notifications de relâchement pour les résultats de test individuels. J'ai une compilation gradle exécutant des tests de spock qui génère un fichier xml avec des résultats de test. Est-il possible d'accéder à des résultats de test individuels sans avoir à analyser le fichier XML?Comment puis-je conditionner un slackSend dans un travail de pipeline Jenkins sur des résultats de test individuels?

Quelque chose comme:

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

Répondre

0

Vous pouvez le faire en 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

Je reçois l'erreur 'Impossible de trouver la méthode slackSend() pour les arguments [ test de relâchement envoyer] sur le projet racine 'job.Disk_Util'.' –

+0

Hahaha ... Bien sûr! Vous aurez besoin d'écrire ce bit! –

+0

bien slackSend est une méthode pipeline jenkins donc je ne serais pas en train d'écrire ça. Je pensais que vous disiez que je pourrais appeler slackSend de Gradle mais je devine que ce n'est pas le cas. Pas sûr que cela fonctionnera alors –