Spring启动测试分析

时间:2015-12-29 12:08:32

标签: testing spring-boot

我有3个开发人员:DEV1,DEV2和DEV3。我希望每个人在/ test / resources /文件夹中都有自己的应用程序-DEV1(2)(3)--properties。

我有一个班级

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class) 

我不想在类上使用@ActiveProfiles注释,因为每次要运行测试时,每个用户都必须添加值来加载自己的配置。 我正在使用IntelliJ,因此我使用命令

设置Maven运行配置
clean test

和个人档案DEV1,例如

当我运行测试结果时,接下来是:在测试运行输出启动时,我可以看到:

/usr/lib/jvm/java-8-oracle/bin/java -Dspring.profiles.active=DEV1

但具体的测试类输出是:

2015-12-29 12:52:10.129  INFO 17211 --- [           main] MyClassTest  : Starting MyClassTest on dev with PID 17211 
2015-12-29 12:52:10.130  INFO 17211 --- [           main] MyClassTest  : No profiles are active

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

我不知道这是IntelliJ问题还是一些配置差距,但有效的是

clean test -Dspring.profiles.active=DEV1

在Maven配置的命令行参数中。

答案 1 :(得分:0)

为了补充您的帖子:SpringBoot文档的this page显示了 externalize 配置文件配置的所有替代方法。

按优先顺序排列:

  • 命令行参数。
  • 来自SPRING_APPLICATION_JSON的属性(嵌入在环境变量或系统属性中的内联JSON)
  • 来自java:comp / env。
  • 的JNDI属性
  • Java系统属性(System.getProperties())。
  • 操作系统环境变量。
  • 一个只有随机属性的RandomValuePropertySource。*。
  • 打包jar之外的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
  • 打包在jar中的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
  • 打包jar之外的应用程序属性(application.properties和YAML变体)。
  • 打包在jar中的应用程序属性(application.properties和YAML变体)。
  • @Configuration类上的@PropertySource注释。
  • 默认属性(使用SpringApplication.setDefaultProperties指定)。