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 实践折腾记(20):Thymleaf + webjar + ECharts 构建本地图表
使用 `publishToMavenLocal` 构建可以发布到 maven 本地 repo 的可执行 jar - spring boot 项目