web-dev-qa-db-fra.com

utilisation de plusieurs fichiers de résultats JUnit sur le pipeline Jenkins

Sur ma ligne de commande Jenkins, j'exécute des tests unitaires sur les configurations de débogage et de libération. Chaque configuration de test génère un fichier de résultats XML JUnit distinct. Les noms de test sur les deux: la configuration du débogage et de la version sont les mêmes. Actuellement, j'utilise la commande junit suivante pour afficher les résultats du test:

junit allowEmptyResults: true, healthScaleFactor: 0.0, keepLongStdio: true, testResults: 'Test-Dir/Artifacts/test_xml_reports_*/*.xml'

Le problème est que, dans l'interface utilisateur Jenkins: les résultats des tests de débogage et de version sont affichés ensemble et il est impossible de savoir quel test (à partir de la configuration du débogage ou de la version) a échoué. ? Si oui, comment puis-je le faire?

9
Dima

Cela ne semble pas être une solution à ma question… .. En guise d'une solution de contournement, j'ai changé le format du rapport XML JUnit et inclus le nom de la variante de construction (debug/release) en tant que nom de package.

1
Dima

Nous effectuons les mêmes tests d'intégration sur deux configurations différentes avec des types de base de données différents. Nous utilisons maven et le plug-in de sécurité, je profite donc du -Dsurefire.reportNameSuffix pour voir la différence entre les deux exécutions. 

Voici un exemple de bloc de notre fichier Jenkins:

stage('Integration test MySql') {
    steps {
        timeout(75) {
            sh("mvn -e verify -DskipUnitTests=true -DtestConfigResource=conf/mysql-local.yaml " +
                "-DintegrationForkCount=1 -DdbInitMode=migrations -Dmaven.test.failure.ignore=false " +
                "-Dsurefire.reportNameSuffix=MYSQL)
        }
    }
    post {
        always {
            junit '**/failsafe-reports/*MYSQL.xml'
        }
    }
}

Dans le rapport, les tests d'intégration exécutés sur mysql s'affichent avec MYSQL ajoutée à leur nom.

0
sporkthrower