Gradle测试任务,如何设置Spring Boot环境进行测试?

时间:2017-01-05 14:15:14

标签: tomcat gradle spring-boot

我使用Gradle设置了Spring Boot项目。我有一个application.yml文件,其中描述了两个名为' dev'和' prod'。

我能够将默认环境设置为' dev'调用Gradle bootRun任务时,使用build.gradle中的以下代码:

def profile = 'dev'
bootRun {
    args = ["--spring.profiles.active=" + profile]
}

但是如果我将相同的代码添加到测试任务中,它就不起作用:

def profile = 'dev'
test {
    args = ["--spring.profiles.active=" + profile]
    testLogging {
    showStandardStreams = true
    }
}

堆栈追踪:

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\Blade\javaworkspace\AutomationStatisticsPortal\build.gradle' line: 43

* What went wrong:
A problem occurred evaluating root project 'AutomationStatisticsPortal'.
> Could not set unknown property 'args' for task ':test' of type org.gradle.api.tasks.testing.Test.

没有该代码,测试任务就是从' prod'中获取配置。这是错的。

我希望bootRun使用' dev'因为那是我如何提出手动测试的应用程序。但我不确定如何确保它使用' dev'对于测试任务,然后确保Tomcat仅使用' prod'。

我可以假设tomcat会选择' prod'配置,如果我不覆盖它似乎是默认行为?

请告知。

1 个答案:

答案 0 :(得分:0)

试试这个

test {
  systemProperties['spring.profiles.active'] = 'dev'
}