Spring Boot 1.4 @DataJpaTest - Error creating bean with name 'dataSource'

匿名 (未验证) 提交于 2019-12-03 01:10:02

问题:

I've created a new spring boot 1.4 application, want to try some testing using @DataJpaTest but keep getting the following error message

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Cannot determine embedded database for tests. If you want an embedded database please put a supported one on the classpath.

src/main/resources/application.properties

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 { } 

build.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') } 

Any ideas what i am doing wrong?

回答1:

We don't provide an embedded database by default. By default DataJpaTest replaces your DataSource with an embedded database but you don't have one.

So, if you want to test with MySQL, replace your test as follows:

@RunWith(SpringRunner.class) @DataJpaTest @AutoConfigureTestDatabase(replace = NONE) final public class MyRepositoryTest { } 

If you want to use an in-memory database for those tests, you need to add one to the test classpath. Add this to your gradle file

testCompile('com.h2database:h2') 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!