使用放心的弹簧启动集成测试

时间:2015-06-16 22:58:18

标签: maven spring-boot h2

我一直在努力解决在测试中启动H2 db的问题。这就是测试的注释方式 -

  @SpringApplicationConfiguration(classes = ServiceApplication.class)
@WebAppConfiguration
@IntegrationTest("server.port:8084")
@PropertySource("test:application.properties")
public class testSerivce{
//test scenario
}

使用内存db H2,这是它在应用程序属性文件中的设置 -

dataSource.driverClassName=org.h2.Driver
dataSource.url=jdbc:h2:tcp://localhost:59000/./target/service-db;MODE=Oracle;IGNORECASE=TRUE;IFEXISTS=TRUE
dataSource.username=sa
dataSource.password=sa
dataSource.maxActive=2
dataSource.initialSize=1
dataSource.maxIdle=1

当我右键单击并运行测试时,H2 db没有使用该服务进行设置,并且测试无法与数据库连接并且失败。

然而,当我使用maven配置文件运行测试时,由于您在teamcity中运行,一切正常并且测试工作但它运行所有10次测试。

我该怎么办?我被困在这个问题很多天了。我应该使用哪个注释或如何设置H2设置,以便它们也可以与服务一起运行。

1 个答案:

答案 0 :(得分:1)

您使用的是Eclipse吗? 我以某种方式注意到src / main / resources / application.properties被排除在Java Build Path之外,如果你使用" eclipse生成项目:eclipse" maven目标。

要解决此问题,您可以添加src / test / resources / application.properties或更正Java Build Path。

我不知道这种行为是否有意。我想这是因为spring-boot-starter-parent

中的资源排除/包含