Jenkins没有从Workspace中的Katalon测试创建JUnit测试报告

时间:2018-06-06 16:57:29

标签: jenkins katalon-studio

昨天,我编写并运行了一个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

enter image description here

注意:我在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"

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

6 个答案:

答案 0 :(得分:0)

显然,PEBKAC。我应该从getgo中听取Jenkins并将我的Test Report XMLs设为*/JUnit_Report.xml

答案 1 :(得分:0)

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



    }
}

答案 2 :(得分:0)

报表文件夹在jenkins作业文件夹中生成。 This worked for me 报告/ ** / JUnit_Report.xml

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

如果报告位于项目文件夹中的\ Reports \ 20200611_172240 \ TestSuite1 \ 20200611_172240 / JUnit_Report.xml位置,则按如下所示配置文件夹路径-/ Reports / / / * / JUnit_Report。 XML文件 因为报表文件夹名称后的3个文件夹在每次执行后总是会更改。

答案 5 :(得分:0)

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

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