Spring Boot测试总是运行模式 - $ {platform} .sql

时间:2017-04-26 12:16:08

标签: java testing spring-boot integration-testing

当我在Spring Boot上运行测试时,schema-${platform}.sqldata-${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 ;

1 个答案:

答案 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/