【问题标题】:using multiple JUnit results file on Jenkins pipeline在 Jenkins 管道上使用多个 JUnit 结果文件
【发布时间】:2017-06-11 19:06:01
【问题描述】:

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

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

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

【问题讨论】:

  • 你有没有解决这个问题?我遇到了同样的问题。
  • 我修改了 XML 格式并包含构建变体名称(调试/发布)作为包名称以防止出现此问题

标签: jenkins junit jenkins-pipeline


【解决方案1】:

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

以下是我们Jenkinsfile的示例块:

    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。

【讨论】:

  • 我遇到了同样的问题。我想在结果中区分单元测试和集成测试。这就是 Jenkins 管道的样子 junit testResults: '*/target/surefire-reports/.xml, */target/failsafe-reports/.xml' 但 Jenkins 只是合并两个报告,我无法区分单元测试和集成测试?
【解决方案2】:

我的问题看起来没有解决方案。 作为一种解决方法,我更改了 JUnit XML 报告格式,并将构建变体名称(调试/发布)包含为包名称。

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2021-03-22
    • 2013-02-02
    • 1970-01-01
    相关资源
    最近更新 更多