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

时间:2017-04-03 06:35:51

标签: ios xcode jenkins junit jenkins-plugins

我是“詹金斯”的初学者,关注this tutorial

Sixth step我收到了以下错误。

  

xcodebuild:error:Scheme JenkinsTest当前未配置测试操作。

     

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

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

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

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

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

7 个答案:

答案 0 :(得分:8)

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

Jenkins的工作有时看不到当前工作区。因此,在使用之前将报告复制回当前工作区始终是个好主意。

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

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

答案 1 :(得分:4)

我正在使用鼻子测试(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"

答案 2 :(得分:4)

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

这样,“ test-results”目录是否存在都没有关系。

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

答案 3 :(得分:0)

感谢@Acid,它确实对我有所帮助。 首先,将module / build / test-results复制到工作空间目录

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

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

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

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

我遇到了同样的问题,并且由于 { "verb": "createSiteColumnXml", "schemaXml": "<Field Type=\"Note\" DisplayName=\"siteColumnMutipleText\" Required=\"FALSE\" EnforceUniqueValues=\"FALSE\" Indexed=\"FALSE\" UnlimitedLengthInDocumentLibrary=\"TRUE\" NumLines=\"6\" RichText=\"TRUE\" RichTextMode=\"FullHtml\" IsolateStyles=\"TRUE\" Sortable=\"FALSE\" Group=\"Custom Columns\" ID=\"{9b5e375a-44ef-405b-8316-fe136a841775}\" SourceID=\"{b62d1450-8e6f-4be7-84a3-f6600fd6cc14}\" StaticName=\"siteColumnMutipleText\" Name=\"siteColumnMutipleText\" Version=\"1\"></Field>", "pushChanges": true } 版本的升级,我的测试报告文件名也更改了

因此,我必须更改,

scala

junit '/myworkspace/target/myreport.xml'

答案 6 :(得分:0)

怎么样:

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

或者只是:

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