Maven surefire插件不包含xml中的系统输出以用于通过测试

时间:2014-10-30 10:50:56

标签: java maven junit jenkins

我有一个奇怪的问题 - 我有一些jUnit测试可以生成标准输出的日志,这很好 - 那些打印到控制台等等。但对于集成部分,我需要将它们包含在target/surefire-report/TEST-<class>.xml中。对于失败的测试,有<system-out><system-err>,但是对于通过的测试,这两个测试都缺失了。现在我已经两天挣扎着没有运气了。似乎没有任何属性(<redirectTestOutputToFile>true</redirectTestOutputToFile>除外,它的工作方式略有不同,并创建了单独的-output文件,这些文件不是jenkins选择的),可以解决这个问题。

2 个答案:

答案 0 :(得分:0)

如果你最关心关于 Jenkins 的报告,这是由 Jenkins JUnit plugin 生成的,它有这样一个选项:

<块引用>

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

参数(用于管道)是 keepLongStdio

例如

for index,i in enumerate(li):
    index = index+1
    if index % 3 == 0: print(i)

答案 1 :(得分:-2)

我建议使用完全用于此目的的redirectTestOutputToFile配置项。但它会重定向到一个单独的文件。

在那里你会找到stdout等的输出reportsDirectory/testName-output.txt