Spring Boot 1.4 @DataJpaTest-ошибка создания компонента с именем "dataSource"
Я создал новое приложение spring boot 1.4, хочу попробовать тестирование с помощью @DataJpaTest, но продолжаю получать следующее сообщение об ошибке
вызвано: org.springframework.зернышки.фабрика.BeanCreationException: ошибка создания компонента с именем "dataSource": не удалось вызвать метод init; вложенным исключением является java.ленг.IllegalStateException: не удается определить встроенную базу данных для тестов. Если вы хотите встроенную базу данных, пожалуйста, поместите поддерживаемую путь класса.
src / main / resources / application.свойства
spring.datasource.url=jdbc:mysql://localhost/my_db
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
MyRepositoryTest
@RunWith(SpringRunner.class)
@DataJpaTest
final public class MyRepositoryTest {
}
построить.Gradle в
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web',
'org.springframework.boot:spring-boot-starter-data-jpa',
'mysql:mysql-connector-java',
'org.projectlombok:lombok:1.16.10'
testCompile('org.springframework.boot:spring-boot-starter-test')
}
любые идеи, что я делаю неправильно?
1 ответов
мы не предоставляем встроенную базу данных по умолчанию. По умолчанию DataJpaTest
заменяет DataSource
со встроенной базой данных, но у вас ее нет.
Итак, если вы хотите протестировать с MySQL, замените свой тест следующим образом:
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = NONE)
final public class MyRepositoryTest {
}
если вы хотите использовать базу данных в памяти для этих тестов,вам нужно добавить ее в тестовый путь к классам. Добавьте это в файл gradle
testCompile('com.h2database:h2')