ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-SpringBoot和GitLab CI运行测试

2019-11-08 16:03:27  阅读:138  来源: 互联网

标签:spring-boot continuous-integration gitlab-ci java spring-mvc


我只想使用GitLab CI来运行测试,而不是部署我的应用程序.我设法组装这个.yml文件:

image: java:8

stages:
  - build
  - test

build:
  stage: build
  script: ./gradlew build
  artifacts:
    paths:
      - build/libs/myApp-4.0.0-SNAPSHOT.jar

unitTests:
  stage: test
  script:
    - ./gradlew test

在GitLab管道中,出现以下错误:

ar.com.sebasira.myApp.myAppApplicationTests > contextLoads FAILED
java.lang.IllegalStateException
Caused by: org.springframework.beans.factory.BeanCreationException
Caused by: org.springframework.beans.BeanInstantiationException
Caused by: org.springframework.beans.factory.BeanCreationException
Caused by: org.springframework.beans.BeanInstantiationException
Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException

我猜这可能与数据库有关,对吧?我需要在运行服务器所在的服务器中向该数据库提供凭据.

如果是这样,我该怎么办?我目前正在使用application.properties文件来定义与数据库的连接.

还有一个问题…在.gitlab-ci.yml文件中,我需要将路径放置到.jar中,但每次更新应用程序版本时,该文件名都会更改.我需要手动更改吗?

解决方法:

当您通过带有注释@RunWith(SpringRunner.class)和@SpringBootTest的测试(我认为这是从Spring Boot生成的标准测试)启动整个Spring上下文时,您必须提供一个数据源.您可以执行以下操作之一:

>在application.properties中的src / test / resources中指定数据库凭据(您可以在数据库服务器上提供测试数据库,因为我不会在每次测试时都连接到生产数据库)
>使用嵌入式H2进行此测试
>使用https://www.testcontainers.org/为您的Spring应用程序测试提供真实的数据库

关于您的GitlabCI问题:无论使用哪个版本,都可以使用*来匹配任何.jar:-build / libs / myApp-*.jar

标签:spring-boot,continuous-integration,gitlab-ci,java,spring-mvc
来源: https://codeday.me/bug/20191108/2009038.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有