Тест интеграции Spring Boot с использованием нескольких типов баз данных - PullRequest
0 голосов
/ 08 мая 2018

В моем тесте мне нужен тест с разными базами данных (mysql, oracle и т. Д.), И я хотел бы знать, возможно ли это с SpringRunner.

Я использую аннотации @SqlGroup и @Sql, но я не обнаружил, как указать файлы сценариев (sql) для соответствующей базы данных.

Пример:

@Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:tenantBeforeTestRun.sql")

Эта аннотация настраивает мой тест для выполнения сценария для всех типов баз данных, но этот файл не работал в Oracle.

1 Ответ

0 голосов
/ 08 мая 2018

@Sql аннотация позволяет вам определить SqlConfig, который содержит имя datasource бина. Затем вы можете определить множество компонентов источника данных, возможно, с разными драйверами и ссылаться на них из разных @Sql. Это может быть полезно: Источник множественных данных Spring Boot

@Sql(..., config = @SqlConfig(datasource = "db1", ...)

application.properties:

#first db
spring.db1.url = [url]
spring.db1.username = [username]
spring.db1.password = [password]
spring.db1.driverClassName = oracle.jdbc.OracleDriver

#second db ...
spring.secondDatasource.url = [url]
spring.secondDatasource.username = [username]
spring.secondDatasource.password = [password]
spring.secondDatasource.driverClassName = oracle.jdbc.OracleDriver

Затем, где-то в @Configuration классе:

@Bean(name = "db1")
@ConfigurationProperties(prefix="spring.db1")
public DataSource secondaryDataSource() {
    return DataSourceBuilder.create().build();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...