仅在使用基于 Spring java 的配置运行测试时初始化数据库

Posted

技术标签:

【中文标题】仅在使用基于 Spring java 的配置运行测试时初始化数据库【英文标题】:Initialize database only when running Test using Spring java based configuration 【发布时间】:2013-11-26 20:40:31 【问题描述】:

我有代码来创建数据源并运行脚本来创建模式并使用基于 java 的 spring 配置添加数据。我只想在测试模式下运行这些脚本。我需要在数据库初始化程序 bean 之上指定任何注释来完成这项工作吗?

【问题讨论】:

【参考方案1】:

您可以为此使用@profile 注解,例如:

@Configuration
@Profile("test_profile")
public class StandaloneDataConfig 

    @Bean
    public DataSource dataSource() 
    // do data source creation/initialization
    

然后使用:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class,
    classes=StandaloneDataConfig.class)
@ActiveProfiles("test_profile")
public class TransferServiceTest 

    @Autowired
    private TransferService transferService;

    @Test
    public void testTransferService() 
        // test the transferService
    

您可以阅读 Spring 团队的 this 博客文章以了解更多详细信息。

【讨论】:

我可以通过使用两个单独的 Java 配置来做到这一点,但是如何使用单个 Java 配置文件来做到这一点?

以上是关于仅在使用基于 Spring java 的配置运行测试时初始化数据库的主要内容,如果未能解决你的问题,请参考以下文章

仅在 REST API 调用上的 Spring Boot 404

[Spring实战系列](15)使用Spring基于Java的配置

Spring之基于Java配置

Eclipse软件运行spring boot项目修改静态文件(htmlcssjs)需要重启项目才生效---解决方法(亲测可用)

Eclipse软件运行spring boot项目修改静态文件(htmlcssjs)需要重启项目才生效---解决方法(亲测可用)

Spring学习笔记--使用Spring基于Java的配置