【问题标题】:Jenkins not creating JUnit test reports from Katalon tests in WorkspaceJenkins 没有从 Workspace 中的 Katalon 测试创建 JUnit 测试报告
【发布时间】:2020-06-24 17:07:24
【问题描述】:

昨天,我编写并运行了一个 Katalon 测试套件,而今天,我正在尝试将 Katalon 与 Jenkins 集成。我成功设置了 Jenkins,为 Katalon 测试创建了一个新工作,as per these instructions,但是当我去构建它时,我得到了失败的构建。

特别是,这是我不断收到的错误消息:

Recording test results
ERROR: Step ‘Publish JUnit test result report’ failed: No test report files were found. Configuration error?
Finished: FAILURE

我继续将 Reports 文件夹结构从我指定的项目目录复制到 Jenkins 工作区。经过后来的检查,我发现,当 Jenkins 运行 Katalon 测试时,JUnit_Report.xml 文件实际上是在项目的Reports 文件夹中创建的,而不是在%JENKINS_HOME%\workspace\[project name]\Reports 中创建的。我明确告诉它生成测试报告到:Reports/LoginSuite/*/JUnit_Report.xml

注意:我在 Windows 机器上。

如何解决这个问题,以便显示 Jenkins 的测试结果?!

更新:我已将我的 Windows shell 代码修改为以下内容

C:

cd C:\Katalon

katalon -runMode=console -projectPath="C:\Users\mwarren\Katalon Studio\TestProject" -reportFolder="../../.jenkins/workspace/Katalon Studio Tests/Reports" -reportFileName="report" -retry=0 -testSuitePath="Test Suites/LoginSuite" -browserType="Chrome"

它仍然给我同样的错误,即使现在正在那里创建测试。

【问题讨论】:

  • 你找到解决方法了吗?我也面临同样的问题。

标签: jenkins katalon-studio


【解决方案1】:

在jenkins job文件夹中生成report文件夹。 报告/**/JUnit_Report.xml

【讨论】:

    【解决方案2】:

    显然,PEBKAC。我应该从一开始就听 Jenkins 并将我的 Test Report XMLs 设置为 */JUnit_Report.xml

    【讨论】:

      【解决方案3】:

      将所有报告复制到临时文件夹,用测试用例名称重命名每个 xml,然后将其复制回 junit 文件夹。

      testCasesTxt = sh (
          script: 'sudo find $WORKSPACE -name "*.ts*" -type f -printf "%f\n"',
          returnStdout: true
      ).trim()
      
      testCasesTxt = testCasesTxt.replace(".ts", "")
      testCases =  testCasesTxt.split("\n")
      
      
      for (int i = 0; i < testCases.size(); i++) {
      
              script {
                  try {
                      wrap([$class: 'Xvfb']) {
                          sh """
                                                          cd /opt/katalon
                                                          ./katalon -noSplash -consoleLog  -runMode=console -projectPath=$WORKSPACE/"katalon-project.prj" -reportFolder="Reports" -reportFileName="report" -retry=0 -testSuitePath="Test Suites/${testCases[i]}" -executionProfile="qa" -browserType="Chrome"
      
      
                                                          """
                      }
                  } catch (any) {
                       currentBuild.result = 'FAILURE'
                       throw any //rethrow exception to prevent the build from proceeding
                  } finally {
      
                      sh """
                              cd  /home/environment/tmp/
                              cd Reports
                              mkdir  ${testCases[i]}
                              cd $WORKSPACE
                              cp -r Reports/ /home/environment/tmp/Reports/${testCases[i]}
                              cd  /home/environment/tmp/Reports/${testCases[i]}/Reports
                              mv  JUnit_Report.xml  JUnit_Report_${testCases[i]}.xml
                              cd $WORKSPACE
                              cp -r "Data Files/" "/home/environment/tmp/"
                                                      """
                      //
                  }
      
      
      
          }
      }
      

      【讨论】:

        【解决方案4】:

        根据this thread,当尝试同时执行两个 Katalon 实例时可能会发生这种情况。

        如果是这种情况,请尝试将 Jenkins 执行者数量更改为 1。

        【讨论】:

          【解决方案5】:

          如果您的报告位于项目文件夹中的 \Reports\20200611_172240\TestSuite1\20200611_172240/JUnit_Report.xml 位置,则配置文件夹路径如下 - /Reports///*/JUnit_Report。 xml 因为报告文件夹名称后面的 3 个文件夹在每次执行后总是会发生变化。

          【讨论】:

            【解决方案6】:

            请像这样使用测试报告 XMLs 路径

            **/target/surefire-reports/*.xml
            

            【讨论】:

              猜你喜欢
              • 2023-03-05
              • 1970-01-01
              • 2017-01-19
              • 1970-01-01
              • 2014-09-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-11-28
              相关资源
              最近更新 更多