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

问题描述 投票:6回答:5

我们已经设法让Jenkins正确解析我们的测试中的XML输出,并且还包含错误信息(如果有的话)。这样就可以直接在Jenkins的TestCase中看到发生的错误。

我们想要做的是让Jenkins保持一个日志输出,这基本上是控制台输出,与每个案例相关联。这将使任何人都能看到每个测试用例的实际控制台输出,无论是否失败。

我还没有看到这样做的方法。

*编辑*

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

*编辑结束*

任何人都可以帮助我们吗?

unit-testing stdout jenkins
5个回答
6
投票

在Publish JUnit测试结果报告(构建后操作)中,勾选Retain long standard output/error复选框。

如果选中,则在构建完成后,测试套件中的任何标准输出或错误都将保留在测试结果中。 (这仅指打印到控制台的其他消息,而不是故障堆栈跟踪。)如果测试失败,则始终保留此类输出,但默认情况下,截断传递测试的冗长输出以节省空间。如果您需要查看甚至通过测试的每条日志消息,请选中此选项,但请注意,即使您从未查看测试结果,Jenkins的内存消耗也会大幅增加!


1
投票

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


1
投票

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

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

然后,只需使用'adb pull'复制文件,并配置Jenkins来解析结果。如有必要,您还可以构建XML文件。

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


1
投票

自Jenkins 1.386以来,在每个构建配置中都提到了保留长标准输出/错误的更改。所以你只需要检查构建后操作中的复选框。

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


0
投票

使用声明性管道时,您可以这样做:

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

the documentation

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

© www.soinside.com 2019 - 2024. All rights reserved.