SpringBoot:为测试配置 Spring DataSource

en *_*pes 5 java h2 spring-data spring-data-jpa spring-boot

我有一个 SpringBoot 应用程序。

我创建了这个测试:

@ContextConfiguration(classes={TestConfig.class})
@RunWith(SpringRunner.class)
@SpringBootTest
public class SuncionServiceITTest {
    @Test
    public void should_Find_2() {
        // TODO
    }
}
Run Code Online (Sandbox Code Playgroud)

在哪里

@Configuration
@EnableJpaRepositories(basePackages = "com.plats.bruts.repository")
@PropertySource("local-configuration.properties")
@EnableTransactionManagement
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
public class TestConfig {
}
Run Code Online (Sandbox Code Playgroud)

和本地configuration.properties

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
spring.datasource.username=sa
spring.datasource.password=sa
Run Code Online (Sandbox Code Playgroud)

但是当我运行测试时。我收到此错误:

引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为“entityManagerFactory”的bean可用

我也试过:

@EnableJpaRepositories(basePackages = "com.plats.bruts.repository", entityManagerFactoryRef="emf")
Run Code Online (Sandbox Code Playgroud)

但后来我有错误:

引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有可用的名为“emf”的bean

use*_*814 4

看起来您缺少以下启动器依赖项。此启动依赖项具有配置jpa存储库所需的所有必要依赖项。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)