2017-02-21 6 views
5

У меня есть приложение для загрузки весны, у него есть пара @Entity классов и @RepositoryRestResource интерфейсов repositort для них. Теперь я хочу написать несколько тестов, где я могу проверить, что я могу добавить новую запись в свою базу данных с помощью этих репозиториев, но я не хочу использовать для нее свою настроенную базу данных MySQL, но вместо этого хочу использовать некоторые встроенные db как H2. На данный момент у меня есть application.properties файл, который выглядит следующим образом:Использовать встроенную базу данных для теста весенней загрузки

spring.jpa.hibernate.ddl-auto=create 
spring.datasource.url=jdbc:mysql://localhost:3306/mydb 
spring.datasource.username=root 
spring.datasource.password=qwerty123 

Вопрос: Как настроить мое приложение, чтобы использовать другой БД для испытаний? У меня нет xml в моем проекте, все основано на аннотациях. Я попытался определить класс @Configuration с @Bean, чтобы создать DataSource, а затем использовать его с аннотацией @ContextConfiguration на тестовом классе, но он говорит, что он не может загружать контекст.

ответ

13

Если вы используете проект Maven, вы можете добавить файл application.properties в свой src/test/resources, например, со следующим содержанием.

# Create DDL 
spring.jpa.hibernate.ddl-auto=create 

# H2 in local file system allowing other simultaneous connections 
spring.datasource.url=jdbc:h2:~/test;AUTO_SERVER=TRUE 

Кроме того, вам необходимо включить H2 в зависимости (pom.xml):

<dependency> 
    <groupId>com.h2database</groupId> 
    <artifactId>h2</artifactId> 
    <version>1.4.193</version> 
</dependency> 
+0

Он по-прежнему использует MySQL БД вместо этого, если я делаю это так. Должен ли я предоставить дополнительную информацию об тестовом классе? Некоторые аннотации для явного определения этих свойств, а не те из папки 'main'? –

+0

ОК, я добавил '@PropertySource (« путь/в/свойства »)' аннотация для тестового класса, и теперь он работает, спасибо –

2

Вам нужно будет использовать Spring Профили - https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-set-active-spring-profiles

Вы определить активный профиль, используя «spring.profiles.active = развитие», а затем в том числе H2 в профиле развития.

В примерах используется YAML, но они также работают в стандартных файлах свойств.

Смежные вопросы