Java 将@ActiveProfiles与SPRING\u PROFILES\u ACTIVE一起使用
在我的Spring Boot应用程序中,我有树型配置文件:默认配置文件、测试配置文件和持续集成配置文件 持续集成配置文件定义了一个可选的datasource.url 测试配置文件定义了一个替代的liquibase.change-log 默认配置文件为我的应用程序定义默认属性 当我在本地运行测试时,我使用IntellIJ运行它们 为了在本地激活测试配置文件,我在测试中添加了Java 将@ActiveProfiles与SPRING\u PROFILES\u ACTIVE一起使用,java,spring,spring-boot,testing,continuous-integration,Java,Spring,Spring Boot,Testing,Continuous Integration,在我的Spring Boot应用程序中,我有树型配置文件:默认配置文件、测试配置文件和持续集成配置文件 持续集成配置文件定义了一个可选的datasource.url 测试配置文件定义了一个替代的liquibase.change-log 默认配置文件为我的应用程序定义默认属性 当我在本地运行测试时,我使用IntellIJ运行它们 为了在本地激活测试配置文件,我在测试中添加了@ActiveProfiles(“test”)注释 当我从CI运行它们时,我添加了SPRING\u PROFILES\u A
@ActiveProfiles(“test”)
注释
当我从CI运行它们时,我添加了SPRING\u PROFILES\u ACTIVE
env变量,如下所示:
SPRING_PROFILES_ACTIVE=ci,test gradle integrationTest
但是ci配置文件被Spring Boot忽略
如果我删除
@ActiveProfiles(“test”)
注释,我的CI工作得很好,但是我无法使用IntelliJ轻松运行我的测试。当您将@ActiveProfiles(“test”)
添加到测试类时,您正在覆盖由SPRING\u profiles\u active
环境变量设置的活动配置文件定义
@ActiveProfiles({"test", "ci"})
@ActiveProfiles
注释,并在测试的IDE运行配置中使用-Dspring.profiles.active=test
@ActiveProfiles
注释,从env var CI作业定义中删除“test”,然后将以下行添加到test/resources文件夹中的application.properties/yaml。(如果您还没有test/resources/application.properties,请知道它会覆盖main/resources/application.properties。)
spring.profiles.include = test