Tomcat Gradle测试任务,如何设置用于测试的Spring引导环境?
我有一个使用Gradle的Spring Boot项目设置。我有一个Tomcat Gradle测试任务,如何设置用于测试的Spring引导环境?,tomcat,gradle,spring-boot,Tomcat,Gradle,Spring Boot,我有一个使用Gradle的Spring Boot项目设置。我有一个application.yml文件,该文件描述了用于两个名为“dev”和“prod”的环境的设置 调用Gradle引导运行任务时,我能够使用build.Gradle中的以下代码将默认环境设置为“dev”: def profile = 'dev' bootRun { args = ["--spring.profiles.active=" + profile] } 但是,如果我向测试任务添加相同的代码,它将不起作用: def
application.yml
文件,该文件描述了用于两个名为“dev”和“prod”的环境的设置
调用Gradle引导运行任务时,我能够使用build.Gradle
中的以下代码将默认环境设置为“dev”:
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”配置,因为如果我不覆盖它,这似乎是默认行为
请告知。试试这个
test {
systemProperties['spring.profiles.active'] = 'dev'
}
试试这个
test {
systemProperties['spring.profiles.active'] = 'dev'
}
这没什么区别。我能让它使用right属性的唯一方法是更改yaml文件。该属性对于dev和prod具有相同的名称。如果我将其重命名为prod,则它将拾取dev属性。但如果它有相同的名字就不会了。我需要保持名称不变。我通过更改yaml文档的顺序来修复它。我先是“dev”,然后是“prod”文档。我只是交换了一下,似乎已经解决了我的问题。真奇怪,没什么区别。我能让它使用right属性的唯一方法是更改yaml文件。该属性对于dev和prod具有相同的名称。如果我将其重命名为prod,则它将拾取dev属性。但如果它有相同的名字就不会了。我需要保持名称不变。我通过更改yaml文档的顺序来修复它。我先是“dev”,然后是“prod”文档。我只是交换了一下,似乎已经解决了我的问题。真奇怪。