在Jenkins管道上使用多个JUnit结果文件

时间:2017-01-26 10:20:15

标签: jenkins junit jenkins-pipeline

在我的Jenkins pipleline上,我对两者都进行了单元测试:调试和发布配置。每个测试配置都会生成单独的JUnit XML结果文件。两者上的测试名称:调试和发布配置相同。目前,我使用以下junit命令来显示测试结果:

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

问题是在Jenkins UI上:调试和发布测试结果一起显示,并且无法知道哪个测试(来自调试或发布配置)失败。 是否可以单独显示调试和发布测试结果?如果是,我该怎么做?

2 个答案:

答案 0 :(得分:1)

我的问题似乎无法解决。 作为一种解决方法,我更改了JUnit XML报告格式,并将构建变体名称(调试/发布)作为包名称。

答案 1 :(得分:0)

我们针对具有不同数据库类型的两种不同配置运行相同的集成测试。我们使用maven和failsafe插件,所以我利用-Dsurefire.reportNameSuffix所以我可以看到两次运行之间的区别。

以下是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'
        }
    }
}

在报告中,集成测试针对mysql运行,然后显示MYSQL附加到其名称。