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')