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

时间:2011-08-04 16:17:05

标签: unit-testing stdout jenkins

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

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

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

*编辑*

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

*编辑结束*

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

5 个答案:

答案 0 :(得分:6)

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

  

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

enter image description here

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

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

请参见the documentation

  

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