首页 > 解决方案 > 为什么在使用spring boot进行测试时,特定注释会导致init.sql文件在mysql测试容器中失败?

问题描述

包含 # 的注释在 mysql 5.7 中完全有效,根据:https ://dev.mysql.com/doc/refman/5.7/en/comments.html似乎破坏了 mysql docker 测试容器的初始化文件。当我将 application-test.properties 文件中的数据源初始化为:

spring.datasource.jdbcUrl=jdbc:tc:mysql:5.7:///test?TC_INITSCRIPT=file:src/test/resources/test-init.sql

test-init.sql 文件中的任何这样的注释都会导致 mysql 在注释结构如下时忽略文件的其余部分:

# Dump of table USERS
# ------------------------------------------------------------

但是,当评论是这样的:

/*
# Dump of table USERS
# ------------------------------------------------------------
*/

文件的其余部分成功执行。

此外,测试容器不会引发 mysql 错误。相反,当我尝试在我的应用程序代码中引用它们时,它会告诉我我的表不存在。

我也使用测试容器而不是 H2,因为我希望它支持确切的 mysql 语法。有没有人暗示我如何纠正这个问题?我通常使用 sequel pro 的导出功能从现有数据库中导出模式。

标签: mysqlspring-bootjunittestcontainerstestcontainers-junit5

解决方案


推荐阅读