如何在Jenkins中保留单元测试输出

9
我们已成功使Jenkins正确解析我们测试的XML输出,并在发生错误时包含错误信息,这样就可以在Jenkins的TestCase中直接看到发生的错误。
我们想要做的是让Jenkins保留与每个用例相关联的日志输出(即控制台输出)。这将使任何人都能够查看每个测试用例的实际控制台输出,无论是否失败。
我还没有找到一种方法来做到这一点。
*编辑*
澄清 - 我想能够直接在Jenkins界面中查看实际的测试输出,就像出现错误时那样,但是希望查看整个输出,而不仅仅是Jenkins保留作为构件的文件。
*编辑结束*
有人能帮助我们吗?
5个回答

7
在“发布JUnit测试结果报告”(后构建操作)中勾选“保留长时间标准输出/错误”复选框。
如果选中,测试套件的任何标准输出或错误将在构建完成后保留在测试结果中。(这仅适用于在控制台上打印的其他消息,而不是失败堆栈跟踪。)如果测试失败,则始终保留此类输出,但默认情况下,通过测试的长输出会被截断以节省空间。如果您需要查看甚至通过测试的每个日志消息,请选中此选项,但请注意,即使您从未查看测试结果,Jenkins的内存消耗也可能会大幅增加! enter image description here

1
Jenkins ver. 2.222.4中找不到那个选项 :( - payne

1

不确定您是否已经解决了这个问题,但我刚刚使用Android和Jenkins做了类似的事情。

我所做的是使用http://code.google.com/p/the-missing-android-xml-junit-test-runner/在Android模拟器中运行测试。这将在模拟器文件系统上创建必要的JUnit格式化XML文件。

之后,只需使用'adb pull'将文件复制过来,并配置Jenkin解析结果。如果需要,您还可以将XML文件作为工件存储。

如果您只想在日志中显示结果的内容,可以使用“Execute Shell”命令将其打印到控制台中,在那里它将被捕获在日志文件中。


该存储库已不再维护。问题报告和拉取请求将不会得到处理。 - AnneTheAgile

1
自Jenkins 1.386版本以来,有一个更改被提到,即在每个构建配置中保留长标准输出/错误。因此,您只需要在后置构建操作中选中复选框即可。

http://hudson-ci.org/changelog.html#v1.386


1

这很简单 - 只需确保输出文件包含在该作业的工件列表中,它将根据该作业的配置进行归档。


我希望能够直接在Jenkins界面中查看实际的测试输出,就像出现错误时一样,但是要查看整个输出。我不希望只有Jenkins将文件作为工件保存。 - striker69

1
当使用声明式流水线时,您可以这样做:
junit testResults: '**/build/test-results/*/*.xml', keepLongStdio: true

请参阅文档

如果勾选,将更改缺少测试结果文件或空测试结果导致构建失败的默认行为,以不影响构建状态。请注意,此设置使得更难发现配置错误的作业或构建失败,其中测试工具在未生成测试报告文件时不会退出错误代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接