【问题标题】:Spring boot test how to use different application.properties for integration testSpring Boot 测试如何使用不同的 application.properties 进行集成测试
【发布时间】:2019-08-17 18:54:14
【问题描述】:

我有一个集成测试,但问题是它使用来自主 application.properties 的数据源,这是一个 mssql 数据库。在我的测试中,我想使用一个 h2 数据库,为此我在 src/test/resources 创建了一个 application-test.poperties 。在我的测试类中,我定义了链接到该属性文件的@TestPropertySource。但是在日志输出中我可以看到 testclass 仍然使用 mssql 数据库连接。

这是我的测试课

    @RunWith(SpringRunner.class)
    @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    @Transactional
    @TestPropertySource(locations="classpath:application-test.properties")
    public class UserControllerTest {

        @LocalServerPort
        private int port;
        TestRestTemplate restTemplate = new TestRestTemplate();
        HttpHeaders headers = new HttpHeaders();
 ...

这是我的 src/test/resources/application-test.properties 文件

    spring.datasource.datasource.url=jdbc:h2:mem:scserver
    spring.datasource.username=sa
    spring.datasource.password=
    spring.datasource.driverClassName=org.h2.Driver
    spring.datasource.jpa.database-platform=org.hibernate.dialect.H2Dialect
   spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect

    # Hibernate ddl auto (create, create-drop, validate, update)
    spring.jpa.hibernate.ddl-auto=create-drop


    #logging
    logging.level.root=info
    logging.file=foo-spring-rest.log

    #required for SpringBootTest does not know why
    spring.main.allow-bean-definition-overriding=true
    spring.h2.console.enabled=true
    spring.h2.console.path=/h2-console

【问题讨论】:

  • 尝试将其命名为 application.properties 而不是 application-test.properties。如果它在 src/test/resources 中,它应该自动覆盖 src/main/resources 中的那个

标签: java spring-boot spring-boot-test


【解决方案1】:

尝试使用代替

@TestPropertySource(locations="classpath:application-test.properties")

这个

@TestPropertySource(locations = {"classpath:application-test.properties"})
// dont forget the curvy brackets, because location'S' 

或配置文件注释

@ActiveProfiles("test")

【讨论】:

    猜你喜欢
    • 2018-02-01
    • 2019-08-20
    • 2020-07-24
    • 2019-08-23
    • 2014-08-15
    • 2020-04-09
    • 1970-01-01
    • 2018-05-04
    • 2017-03-30
    相关资源
    最近更新 更多