Java Gitlab CI/CD Spring boot Mysql示例构建和数据库连接成功,但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

使用Spring Boot MySQL Gitlab应用CI/CD

我用MySQL创建了一个非常基本的Spring boot crud应用程序,我需要实现的是Gitlab CI管道,以自动化我的构建,并为gilab存储库中的每个提交执行单元测试用例。到目前为止,我所做的包括在下面。构建和数据库连接成功执行,但junit测试用例失败,错误代码如下:

请合作解决以下问题

应用程序属性

# 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