Jenkins - 失败:未找到测试报告文件。配置错误?

问题描述 投票:0回答:10

我是“Jenkins”的初学者,正在学习 本教程

第六步我收到以下错误。

xcodebuild:错误:当前未为测试操作配置方案 JenkinsTest。

构建步骤“Xcode”将构建标记为失败 记录测试结果 错误:步骤“发布 JUnit 测试结果报告”失败:未找到测试报告文件。配置错误? 完成:失败

测试报告XML中我确实设置了“test-reports/.*xml”

我试图找到我的解决方案,而且很多问题都是基于SO 就像我也有同样的问题但没有得到解决方案。

我有一些困惑,.xml 文件是由“Jenkins”自动生成的还是首先我们需要手动添加 .xml 文件?

总之,根据上述错误指导我正确的方向。

ios xcode jenkins junit jenkins-plugins
10个回答
44
投票

您还可以启用 allowEmptyResults 选项,这样 junit 插件在找不到测试结果时就不会抛出异常。

这样“test-results”目录是否存在并不重要。

junit allowEmptyResults: true, testResults: '**/test-results/*.xml'

18
投票

首先确保测试运行后生成 junit.xml。

Jenkins 作业有时无法查看当前工作空间。因此,在使用报告之前将报告复制回当前工作区始终是一个好主意。

    cd <path to report>
    cp *.xml $WORKSPACE

现在詹金斯应该拿起报告。 注意:配置可能会首先显示错误(因为它在工作区中找不到 xml 文件),但在构建之后,该错误应该会消失,并且结果也应该被记录


10
投票

我正在使用nosetest(python)生成xUnit兼容文件,我得到:

ERROR: No test report files were found. Configuration error?

我使用 junit 插件:

junit "test-results-unit.xml"

junit
似乎默认添加
WORKSPACE
目录,因此在文件中使用完整的
PATH
也不起作用。我创建了从结果文件到 WORKSPACE 目录的符号链接以使其正常工作:

  sh 'ln -s tests/test-results-unit.xml $WORKSPACE'
  junit "test-results-unit.xml"

5
投票

其他答案建议将文件复制到工作区目录,但对我来说,只需更改以“**”开头的路径似乎可以解决问题

junit '**/test-reports/*.xml'

Jenkins junit 插件页面 表示您需要“在 Ant glob 语法中指定 JUnit XML 文件的路径”。我还没有深入研究这意味着什么,但以“**”开始路径足以让它为我工作。


4
投票
谢谢@Acid,它真的帮助了我。 首先,将 module/build/test-results 复制到工作区目录

cp -r app/build/test-results $WORKSPACE/test-results

然后我使用了这个通配符路径

**/test-results/**/*.xml
    

1
投票
怎么样:

junit allowEmptyResults: true, testResults: "${WORKSPACE}/test-results/*.xml"
或者只是:

junit "${WORKSPACE}/test-results/*.xml"
    

1
投票
我正在扫描 checkov 并执行以下操作对我有用:

sh 'checkov -f tfplan.json --framework terraform_plan --soft-fail -o cli -o junitxml --output-file-path results.xml' junit skipPublishingChecks: true, testResults: '**/*.xml'
    

0
投票
我遇到了同样的问题,由于

scala

版本的升级,我的测试报告文件名发生了变化,

因此我必须改变,

junit '/myworkspace/target/myreport.xml'

junit '/myworkspace/target/TEST-myreport.xml'
    

0
投票
您必须在 .jenkins 工作空间中找到保存测试报告的路径:

/Users/<USERNAME/>/.jenkins/workspace/<PROJECT/>/target/surefire-reports/*.xml
在终端中查找文件夹类型:

.jenkins
然后

open .
    

0
投票
我遇到了同样的问题,发现我在 Jenkins 文件中使用了 jococo 而不是 jacoco。

post{ always{ junit 'target/surefire-reports/*.xml' jacoco execPattern: 'target/jacoco.exec' } }
    
© www.soinside.com 2019 - 2024. All rights reserved.