我正在使用:
- 詹金斯 2.64
- 格拉德尔 3.5
- Spring 框架 4.3.8
我能够通过 Jenkins 通过 Gradle 任务执行 Main Java 类。 因此,我可以执行 N 次作业来绕过 JMX,对于每个作业执行,我都有Build History
,我可以在其中查看每个交互的业务类的日志记录输出。
请注意,历史记录会为每个作业的执行保存每个日志记录输出
问题出在测试上。
通过 Jenkins,我能够执行与 Gradle Test 命令相关的作业,例如:gradle test --tests
。这里有两种行为:
- Gradle 通过自己的输出目录
buildreportsteststest
保存我的业务类的日志记录输出(这是预期的,我对此很好) - Jenkins 在执行
Gradle
测试命令方面工作得很好,但所有日志记录输出都只通过 Gradle 测试报告发布,而不是在 Jenkins 中发布,它在Build History
中。
因此,Jenkins
不包含我的业务类的日志记录输出。因此,如果我在我的开发周期中执行 N 次测试作业。我只能通过Gradle Test Reports
看到最新的日志记录输出,遗憾的是Jenkins
没有通过Build History
保留这些日志记录输出。
如何解决这个问题?需要一些基本配置或插件吗?
为了在 Jenkins 中保存 junit 报告,您可以使用 JUnit 插件
单个报告位于构建/测试结果/测试/.xml*
如果使用声明性管道,则可以使用以下脚本
junit 'build/test-results/test/*.xml'
由于您指向的是 build\reports\tests\test\index.html这是 gradle 测试报告,因此您还可以使用 HTML 发布者插件保存该报告
我的建议是使用JUnit插件进行更好的集成。
若要保存生成中的工件,可以使用archiveArtifacts
管道命令
它看起来像这样:
archiveArtifacts artifacts: 'build/reports/tests/test/*'