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

dy1byipe  于 2023-04-20  发布在  Jenkins
关注(0)|答案(9)|浏览(228)

我是“Jenkins”的初学者,并遵循this tutorial
在第六步,我得到了下面的错误。
xcodebuild:错误:当前未为测试操作配置Scheme JenkinsTest。
构建步骤“Xcode”将构建标记为失败记录测试结果错误:步骤“发布JUnit测试结果报告”失败:未找到测试报告文件,配置错误?已完成:失效
测试报告XML中,我确实设置了**“test-reports/.xml”*
我试图找到我的解决方案,也有许多问题是建立在SO like same issue I have too,但没有得到解决。
我有一些困惑,是.xml文件自动生成的“Jenkins”或首先我们需要手动添加.xml文件?
总之,基于上述错误,引导我正确的方向。

ki0zmccv

ki0zmccv1#

您还可以启用'allowEmptyResults'选项,以便junit插件在找不到测试结果时不会抛出异常。
这样,“test-results”目录是否存在就不重要了。

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

isr3a4wc2#

首先确保在测试运行后生成junit.xml。
Jenkins作业有时无法看到当前工作区之外的内容,因此在使用之前将报告复制回当前工作区总是一个好主意。

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

现在Jenkins夫妇应该去拿报告了。注意:配置可能会先显示错误(因为它在工作区中找不到xml文件),但在构建之后,这个错误应该会消失,并且结果应该会被记录下来

kyks70gy

kyks70gy3#

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

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

我使用junit plugin:

junit "test-results-unit.xml"

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

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

k7fdbhmy4#

其他答案建议将文件复制到工作区目录,但对我来说,简单地将路径更改为以'**'开头似乎可以解决问题

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

Jenkins junit plugin page说明您需要“在Ant glob语法中指定JUnit XML文件的路径”。我没有深入研究这意味着什么的全部细节,但以'**'开头的路径足以让它为我工作。

6g8kf2rb

6g8kf2rb5#

谢谢@Acid,它真的帮了我大忙。首先,将模块/build/test-results复制到workspace目录

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

然后我用这个通配符路径

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

mlnl4t2r6#

怎么样:

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

或者只是:

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

4dbbbstv7#

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

junit '/myworkspace/target/myreport.xml'

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

zaqlnxep8#

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

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

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

.jenkins

然后

open .
b4wnujal

b4wnujal9#

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

post{
              always{
                junit 'target/surefire-reports/*.xml'
                jacoco execPattern: 'target/jacoco.exec'
                
              }
            }

相关问题