Java Gitlab CI/CD Spring boot Mysql示例构建和数据库连接成功,但Junit测试失败,数据库问题未知。。!(数据库存在)
使用Spring Boot MySQL Gitlab应用CI/CD 我用MySQL创建了一个非常基本的Spring boot crud应用程序,我需要实现的是Gitlab CI管道,以自动化我的构建,并为gilab存储库中的每个提交执行单元测试用例。到目前为止,我所做的包括在下面。构建和数据库连接成功执行,但junit测试用例失败,错误代码如下: 请合作解决以下问题 应用程序属性Java Gitlab CI/CD Spring boot Mysql示例构建和数据库连接成功,但Junit测试失败,数据库问题未知。。!(数据库存在),java,mysql,spring-boot,yaml,gitlab-ci,Java,Mysql,Spring Boot,Yaml,Gitlab Ci,使用Spring Boot MySQL Gitlab应用CI/CD 我用MySQL创建了一个非常基本的Spring boot crud应用程序,我需要实现的是Gitlab CI管道,以自动化我的构建,并为gilab存储库中的每个提交执行单元测试用例。到目前为止,我所做的包括在下面。构建和数据库连接成功执行,但junit测试用例失败,错误代码如下: 请合作解决以下问题 应用程序属性 # DATASOURCE (DataSourceAutoConfiguration & DataSour
# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url=jdbc:mysql://mysql:3306/demodb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=JST&useLegacyDatetimeCode=false
spring.datasource.username=root
spring.datasource.password=hbstudent
# Hibernate
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update
# Logged in command line to see sql error and jdbc exception
logging.level.org.hibernate.SQL= DEBUG
logging.level.org.hibernate.type=TRACE
.gtlab-cl.yml
after_script:
- echo "Clean up activity can be done here !."
services:
- mysql
stages:
- build
- connect
- test
variables:
MAVEN_CLI_OPTS: "--batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
MYSQL_DATABASE_NAME: demodb
MYSQL_DATABASE_SCHEMA: "$CI_PROJECT_DIR/src/main/resources/static/sql/demodb.sql"
MYSQL_ROOT_PASSWORD: hbstudent
cache:
paths:
- .m2/repository/
- target/
build:
stage: build
image: maven:latest
script:
- mvn $MAVEN_CLI_OPTS clean compile
connect:
stage: connect
image: mysql
before_script:
- mysql --version
- apt-get update -q && apt-get install -qqy --no-install-recommends mysql-client
script:
- echo "create database $MYSQL_DATABASE_NAME;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql
- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql $MYSQL_DATABASE_NAME < $MYSQL_DATABASE_SCHEMA
- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql -e "show databases; use $MYSQL_DATABASE_NAME; show tables;"
test:
stage: test
image: maven:latest
script:
- mvn $MAVEN_CLI_OPTS test
在脚本之后:
-echo“可以在此处完成清理活动!”
服务:
-mysql
阶段:
-建造
-连接
-试验
变量:
MAVEN_CLI_选择:“--批处理模式”
MAVEN_选择:“-Dmaven.repo.local=.m2/存储库”
MYSQL_数据库_名称:demodab
MYSQL_数据库_架构:“$CI_项目_目录/src/main/resources/static/sql/demodab.sql”
MYSQL\u ROOT\u密码:hbstudent
隐藏物:
路径:
-.m2/存储库/
-目标/
建造:
阶段:建造
图片:maven:最新
脚本:
-mvn$MAVEN_CLI_选择干净编译
连接:
阶段:连接
图片:mysql
在脚本之前:
-mysql——版本
-apt-get-update-q&&apt-get-install-qqy——不安装mysql客户端
脚本:
-echo“创建数据库$MYSQL\u database\u NAME;”|MYSQL--user=root--password=“$MYSQL\u root\u password”--host=MYSQL
-mysql--user=root--password=“$mysql\u root\u password”--host=mysql$mysql\u DATABASE\u NAME<$mysql\u DATABASE\u SCHEMA
-mysql--user=root--password=“$mysql\u root\u password”--host=mysql-e”显示数据库;使用$mysql\u DATABASE\u NAME;显示表
测试:
阶段:测试
图片:maven:最新
脚本:
-mvn$MAVEN_CLI_选项测试
strong文本
我终于得到了答案,我会很快在这里更新它。。。。。!最后我得到了答案,我会很快在这里更新。。。。。!
after_script:
- echo "Clean up activity can be done here !."
services:
- mysql
stages:
- build
- connect
- test
variables:
MAVEN_CLI_OPTS: "--batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
MYSQL_DATABASE_NAME: demodb
MYSQL_DATABASE_SCHEMA: "$CI_PROJECT_DIR/src/main/resources/static/sql/demodb.sql"
MYSQL_ROOT_PASSWORD: hbstudent
cache:
paths:
- .m2/repository/
- target/
build:
stage: build
image: maven:latest
script:
- mvn $MAVEN_CLI_OPTS clean compile
connect:
stage: connect
image: mysql
before_script:
- mysql --version
- apt-get update -q && apt-get install -qqy --no-install-recommends mysql-client
script:
- echo "create database $MYSQL_DATABASE_NAME;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql
- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql $MYSQL_DATABASE_NAME < $MYSQL_DATABASE_SCHEMA
- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql -e "show databases; use $MYSQL_DATABASE_NAME; show tables;"
test:
stage: test
image: maven:latest
script:
- mvn $MAVEN_CLI_OPTS test