测试Spring Boot Batch应用程序时如何配置EntityManagerFactoryBuilder bean?

詹姆士

我有一个Spring Boot Batch应用程序,正在针对它编写集成测试。但是,在运行测试时,我收到有关EntityManagerFactoryBuilder bean的以下错误消息:

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'entityManagerFactory' defined in com.example.DatabaseConfig: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder]: : 
No qualifying bean of type [org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. 
Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]

我的理解是,Spring Boot在应用程序启动时提供EntityManagerFactoryBuilder bean。运行测试时如何提供EntityManagerFactoryBuilder?

这是我的测试代码:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {DatabaseConfig.class, BatchConfiguration.class})
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
        StepScopeTestExecutionListener.class })

public class StepScopeTestExecutionListenerIntegrationTests {

    @Autowired
    private FlatFileItemReader<Foo> reader;

    @Rule
    public TemporaryFolder testFolder = new TemporaryFolder();

    public StepExecution getStepExection() {
        StepExecution execution = MetaDataInstanceFactory.createStepExecution();
        return execution;
    }

    @Test
    public void testGoodData() throws Exception {
       //some test code
    }

这是DatabaseConfig类:

@Configuration
@EnableJpaRepositories(basePackages={"com.example.repository"}, 
entityManagerFactoryRef="testEntityManagerFactory",
transactionManagerRef = "testTransactionManager")
public class DatabaseConfig {

    @Bean
    public LocalContainerEntityManagerFactoryBean testEntityManagerFactory(EntityManagerFactoryBuilder builder) {
        return builder
                .dataSource(dataSource())
                .packages("com.example.domain")
                .persistenceUnit("testLoad")
                .build();
    }

    @Bean
    @ConfigurationProperties(prefix="spring.datasource")
    public DataSource dataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    public PlatformTransactionManager testTransactionManager(EntityManagerFactory testEntityManagerFactory) {
        JpaTransactionManager transactionManager = new JpaTransactionManager();
        transactionManager.setEntityManagerFactory(testEntityManagerFactory);
        return transactionManager;
    }

}
然后马库斯

在(集成)测试Spring Boot应用程序时,应该做的是。@SpringApplicationConfiguration打算把你的应用程序类(一个与@SpringBootApplication注释),因为它会再被触发做很多相同的自动配置作为一个经常春季启动应用程序。

您仅包括2个配置类,因此不会进行自动配置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从测试应用程序上下文中排除 Spring Boot 应用程序 bean?

来自分类Dev

测试 Spring Boot Camel 应用程序时出现 NullPointerException

来自分类Dev

在JBoss EAP 7.1.0中部署Spring Boot应用程序时,创建名称为“ undertowServletWebServerFactory”的bean时出错

来自分类Dev

如何使用现有应用程序的spring配置类仅测试一个bean?

来自分类Dev

如何使用现有应用程序的spring配置类仅测试一个bean?

来自分类Dev

黄瓜测试Spring Boot应用程序

来自分类Dev

Spring Boot 测试 - 模拟位于责任链深处的处理程序 Bean

来自分类Dev

如何在Spring Boot集成测试中注入dataSource默认bean

来自分类Dev

在Spring-Boot中配置Bean

来自分类常见问题

如何测试Spring-boot应用程序的主类

来自分类Dev

如何测试Spring Boot应用程序的日志?

来自分类Dev

如何测试Spring Boot应用程序的日志?

来自分类Dev

Spring Boot 应用程序的测试如何工作

来自分类Dev

在Groovy bean DSL中访问Spring Boot应用程序属性

来自分类Dev

在Wildfly上运行时的Spring Boot应用程序问题(bean创建错误)

来自分类Dev

由于1个bean之间的循环依赖关系,Spring Boot应用程序无法启动

来自分类Dev

如何在Spring Boot应用程序中配置PageableHandlerMethodArgumentResolver

来自分类Dev

如何正确配置我的 Spring Boot 应用程序?

来自分类Dev

Spring不使用测试配置bean进行测试

来自分类Dev

Spring Boot REST应用程序测试方法

来自分类Dev

单元测试Spring Boot应用程序端点

来自分类Dev

Spring Boot中多战应用程序的集成测试

来自分类Dev

单元测试Spring Boot应用程序服务层

来自分类Dev

未运行 Spring Boot 应用程序的测试

来自分类Dev

Cucumber 测试不启动 Spring Boot 应用程序

来自分类Dev

Spring boot:排除一些自动配置的bean

来自分类Dev

Spring Boot bean空异常

来自分类Dev

Spring Boot:退出应用程序时发生异常

来自分类Dev

使用-jar运行Spring Boot应用程序时出错

Related 相关文章

  1. 1

    如何从测试应用程序上下文中排除 Spring Boot 应用程序 bean?

  2. 2

    测试 Spring Boot Camel 应用程序时出现 NullPointerException

  3. 3

    在JBoss EAP 7.1.0中部署Spring Boot应用程序时,创建名称为“ undertowServletWebServerFactory”的bean时出错

  4. 4

    如何使用现有应用程序的spring配置类仅测试一个bean?

  5. 5

    如何使用现有应用程序的spring配置类仅测试一个bean?

  6. 6

    黄瓜测试Spring Boot应用程序

  7. 7

    Spring Boot 测试 - 模拟位于责任链深处的处理程序 Bean

  8. 8

    如何在Spring Boot集成测试中注入dataSource默认bean

  9. 9

    在Spring-Boot中配置Bean

  10. 10

    如何测试Spring-boot应用程序的主类

  11. 11

    如何测试Spring Boot应用程序的日志?

  12. 12

    如何测试Spring Boot应用程序的日志?

  13. 13

    Spring Boot 应用程序的测试如何工作

  14. 14

    在Groovy bean DSL中访问Spring Boot应用程序属性

  15. 15

    在Wildfly上运行时的Spring Boot应用程序问题(bean创建错误)

  16. 16

    由于1个bean之间的循环依赖关系,Spring Boot应用程序无法启动

  17. 17

    如何在Spring Boot应用程序中配置PageableHandlerMethodArgumentResolver

  18. 18

    如何正确配置我的 Spring Boot 应用程序?

  19. 19

    Spring不使用测试配置bean进行测试

  20. 20

    Spring Boot REST应用程序测试方法

  21. 21

    单元测试Spring Boot应用程序端点

  22. 22

    Spring Boot中多战应用程序的集成测试

  23. 23

    单元测试Spring Boot应用程序服务层

  24. 24

    未运行 Spring Boot 应用程序的测试

  25. 25

    Cucumber 测试不启动 Spring Boot 应用程序

  26. 26

    Spring boot:排除一些自动配置的bean

  27. 27

    Spring Boot bean空异常

  28. 28

    Spring Boot:退出应用程序时发生异常

  29. 29

    使用-jar运行Spring Boot应用程序时出错

热门标签

归档