当前位置: 首页 > 知识库问答 >
问题:

Jenkins在Workspace中从Katalon测试创建JUnit测试报告

孙明德
2023-03-14

昨天,我编写并运行了一个Katalon测试套件,今天,我试图将Katalon与Jenkins集成。我成功地安装了Jenkins,根据这些说明为Katalon测试创建了一个新的工作,但是当我开始构建它时,我得到了失败的构建。

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

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

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

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

共有2个答案

公西天逸
2023-03-14

将所有报告复制到一个临时文件夹,用测试用例名称重命名每个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/"
                                                """
                //
            }



    }
}
濮丰
2023-03-14

显然,这是一种。我应该从一开始就听詹金斯的意见,并将我的测试报告XML设置为*/JUnit_Report.xml

 类似资料:
  • 目前的情况: 每周一早上我都会手动检查周末运行的Jenkins作业jUnit结果,使用Project Health插件我可以过滤时间框运行。然后我将此表复制粘贴到Excel中,并检查每个测试用例的输出日志,以查看失败的原因并记下失败的原因。每个周末在Excel中都有另一个选项卡。所有这些都使可追溯性成为一场噩梦,并导致耗时的体力劳动。 我在寻找什么(并希望在某种程度上已经存在): 存储我指定的所有

  • 我的一个GAE类正在从HTML文件创建[datastore Entity][1]: 当我试图在JUnit测试中调用此方法时,会引发以下异常: 问题似乎是在我的代码示例的第一行中创建键。

  • 我正试图利用Jenkins中的“发布JUnit测试结果报告”,但无法让它为我的android测试项目工作。我在Jenkins的android测试项目的设置基于以下指南:https://wiki.jenkins-ci.org/display/Jenkins/building+an+android+app+和+test+project 我希望有人能发布一个简单的逐步指南,说明如何从测试运行中获得JUn

  • 我正在创建两个单元测试来测试我的应用程序逻辑。在下面,我根据顺序是否为真创建了两个最终变量。有没有一种方法可以不必为每种订单类型创建最终变量,从而使其干燥?

  • 22.13.7.测试报告 测试任务默认生成以下结果. 一份HTML测试报告 一个与Ant的JUnit测试报告任务兼容的XML.这个格式与许多其他服务兼容,如CI serves 结果是有效的二进制,测试任务会从这些二进制结果生成其他结果。 有一个独立的TestReport任务类型会根据一些Test任务实例生成的二进制源码生成一个HTML报告.使用这种测试类型,需要定义一个destinationDir