使用Spring Profiles运行Gradle任务(集成测试)

需要使用弹簧配置文件通过Gradle运行测试。

gradle clean build

我已添加任务:

task beforeTest() {
    doLast {
      System.setProperty("spring.profiles.active", "DEV")
    }
}

test.dependsOn beforeTest

我的测试定义是:

@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("TestProfile")
public class SomeTest {

但此结构不适用于我。

Gradle运行测试。


解决方案

我认为您希望在运行时/测试JVM中设置系统属性,但您在构建时JVM(即Gradle守护进程)中设置的系统属性不正确。

参见Test.systemProperty(String, Object)

例如:

test {
    systemProperty 'spring.profiles.active', 'DEV'
}

..。还有关于你尝试的另一张纸条。请注意,任务具有doFirstdoLast方法,因此您不需要为您正在尝试的内容单独执行任务。

相关文章