当我在Spring Boot上运行测试时,schema-${platform}.sql
和data-${platform}.sql
都在运行。
在我的场景中,我必须从测试中删除schema.sql并设置数据源属性datasource.jpa.hibernate.ddl-auto=update
。当我从测试文件夹中删除' Schema 2' 时,' Schema 1' 继续运行。
我有以下目录结构:
├───src
│ ├───main
│ │ └───resources
│ │ ├───locale
│ │ └───static
│ │ └data-mysql.sql
│ │ └schema-mysql.sql //Schema 1
│ └───test
│ └───resources
│ └data-mysql.sql
│ └schema-mysql.sql //Schema 2
- > Schema 1 和 Schema 2 都具有相同的sql指令。
无论如何要将data-mysql.sql
保留在测试文件夹中,从测试文件夹中删除schema-mysql.sql
并且测试不会运行' 架构1 &#39 ;
答案 0 :(得分:0)
一种解决方案是使用不同的配置文件进行测试
1。 因此,对于测试,您将在JVM命令行上设置系统属性。如 -Dspring.profiles.active = testing-Dspring.profiles.active = Cl 或者随意的东西 -Dspring.profiles.active =下雨
2。 然后,您将创建与配置文件匹配的第二个application.properties文件
例如 application-testing.properties
然后,您可以在该属性文件中指定位置和名称 使用
获取数据文件spring.datasource.schema =
Spring Boot Profile Documentation https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
实施例
https://www.mkyong.com/spring-boot/spring-boot-profiles-example/