我有一个使用gradle的Spring Boot项目,具有三个Spring配置文件:
因此,我有四个application * .yml文件:
这些环境都可以正常工作。问题是,当我将代码部署到heroku时,heroku运行“gradle build”(依次运行“gradle test”),而heroku没有设置环境变量的选项。因此,我无法设置有效的配置文件。因此,当它运行测试时,它使用的是application.yml,而没有覆盖application-test.yml。因此,测试显然失败了。
到目前为止,我唯一的解决方案是将所有application-test.yml默认值都放入application.yml,然后在其他配置文件中再次覆盖它们,但这显然不是理想的选择。
有没有办法:
最佳答案
如果您使用的是@WebIntegrationTest
或@IntegrationTest
,则可以将配置文件设置为带有注释的属性值。
看起来像这样:
@RunWith(SpringJUnit4ClassRunner.class)
@WebIntegrationTest({"spring.profiles.active=test"})
public class MyWebIntegrationTests {
// ...
}
关于spring - 如何为运行测试设置默认的Spring Boot配置文件(不使用环境变量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734432/