Spring Boot 应用程序本地构建通过,但由于测试在 Jenkins 中失败

Posted

技术标签:

【中文标题】Spring Boot 应用程序本地构建通过,但由于测试在 Jenkins 中失败【英文标题】:Spring boot application local build passes, but fails in Jenkins due to Tests 【发布时间】:2017-09-14 22:01:24 【问题描述】:

在本地系统对xxxx-app执行gradle build命令时,构建成功。但是当我通过 Jenkins 作业执行构建时,执行 Spring boot 应用程序测试时构建失败,如下所示。

:xxxx-app:processTestResources UP-TO-DATE
:xxxx-app:testClasses
:xxxx-app:test

com.xxxx.yyyy.XXXXApplicationTests > contextLoads FAILED
java.lang.IllegalStateException
Caused by: org.springframework.beans.factory.BeanCreationException
Caused by: org.springframework.beans.factory.BeanCreationException
Caused by: java.lang.IllegalArgumentException

1 test completed, 1 failed
:xxxx-app:test FAILED

FAILURE: Build failed with an exception.

我相信这与 build.gradle 中的测试依赖关系有关,但不确定在本地系统中是否会成功。我正在使用以下依赖项,

testCompile('org.springframework.boot:spring-boot-starter-test')

由于这个问题,我无法在 Jenkins 工作中继续进行下去,有人可以帮助解决这个问题吗?

【问题讨论】:

测试中的堆栈跟踪说? 顺便说一句,测试在做什么?也许它正在尝试对启动的应用程序进行组件测试?如果是这样,可能正在检查“localhost”,如果在 jvm 上运行可能会有所不同?。 【参考方案1】:

我遇到了同样的问题。就我而言,这是旧 Jenkins 构建中测试失败的问题。 您需要在gradle test 之前添加gradle clean

看看这个answer,了解我们什么时候需要做gradle clean

【讨论】:

以上是关于Spring Boot 应用程序本地构建通过,但由于测试在 Jenkins 中失败的主要内容,如果未能解决你的问题,请参考以下文章

构建spring boot项目时出错[重复]

Spring Boot 实践折腾记(20):Thymleaf + webjar + ECharts 构建本地图表

使用 `publishToMavenLocal` 构建可以发布到 maven 本地 repo 的可执行 jar - spring boot 项目

jenkins集成spring boot持续化构建代码

使用 Angular 和 Spring Boot 从本地主机获取数据

为 Java Spring Boot Gradle 项目构建 Heroku Procfile