【问题标题】:Jenkins - failed: No test report files were found. Configuration error?Jenkins - 失败:未找到测试报告文件。配置错误?
【发布时间】:2017-08-27 22:12:07
【问题描述】:

我是“Jenkins”的初学者并关注this tutorial

Sixth step 出现以下错误。

xcodebuild: error: Scheme JenkinsTest 当前没有为测试操作配置。

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

Test report XMLs 中我确实设置了 "test-reports/.*xml"

我试图找到我的解决方案,而且很多问题都建立在 SO like same issue I have too 上,但没有得到解决方案。

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

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

【问题讨论】:

  • test-reports 目录是否存在(在 Jenkins 工作区中)?我暂时无法测试,但我认为它在我们的系统上有另一个名称。
  • @shallowThought - 是的,它存在。
  • 问题解决了吗?我遇到了同样的问题。
  • 您找到解决方案了吗,因为我遇到了同样的问题?我们需要手动创建.xml文件还是让Jenkins创建。
  • 对于“未配置为测试操作”错误,请参阅其他问题。如果没有正确配置项目以进行测试,您将不会得到结果文件。 stackoverflow.com/questions/30481630/…

标签: ios xcode jenkins junit jenkins-plugins


【解决方案1】:

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

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

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

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

【讨论】:

  • 我在 aws linux 实例上 #junit MobaXterm X11 代理:不支持的授权协议线程“主”java.awt.AWTError 中的异常:无法使用 'localhost:11.0' 连接到 X11 窗口服务器DISPLAY 变量的值。
  • 我遇到了同样的问题,将 xml 文件复制到工作区的根目录为我解决了这个问题。我一直在运行“junit ”,但它不起作用。但是,我不明白为什么这会解决它。您能否进一步解释此声明:“Jenkins 工作有时无法看到当前工作区。因此,在使用之前将报告复制回当前工作区总是一个好主意。”
【解决方案2】:

我正在使用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"

【讨论】:

  • 我也遇到了同样的错误,尝试了你建议的方法,但没有运气。您能否告知我是否需要进行任何其他更改
  • @GauravParek 尝试先通过运行lsfind 来查找test-results-unit.xml 文件,然后创建指向正确路径的符号链接
【解决方案3】:

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

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

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

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

【讨论】:

    【解决方案4】:

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

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

    Jenkins junit plugin page 表示您需要“以 Ant glob 语法指定 JUnit XML 文件的路径”。我还没有深入了解这意味着什么,但是以 '**' 开头的路径足以让它为我工作。

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题,由于scala版本的升级,我的测试报告文件名发生了变化,

        因此我必须改变,

        junit '/myworkspace/target/myreport.xml'
        

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

        【讨论】:

          【解决方案7】:

          怎么样:

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

          或者只是:

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

          【讨论】:

            【解决方案8】:

            您必须在 .jenkins 工作区中找到您的测试报告的保存路径:

            /Users/<USERNAME/>/.jenkins/workspace/<PROJECT/>/target/surefire-reports/*.xml
            

            在终端中查找文件夹类型:

            .jenkins
            

            然后

            open .
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-07-05
              • 2019-03-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-03-07
              • 1970-01-01
              • 2015-12-10
              相关资源
              最近更新 更多