我有一个带有源代码和测试层次结构的Spring Boot应用程序。在这两个层次结构中,我都有带有属性的application.yml文件。
假设我在src application.yml中有以下内容:
settings1:
setting1: value11
settings2
setting1: value12
在application.yml的测试中,我得到了以下内容:
settings1:
setting1:testValue11
我希望我的所有测试都知道test application.yml中重写的值,如果test application.yml中没有值,则将从src application.yml中获取该值。
但我希望当我的应用程序运行时,它只知道来自src application.yml的设置。
我该怎么解决呢?配置而不是在代码中连接值。
请参阅第2.7.3节。来自Spring Boot参考文档的多配置文件YAML文档。
包含单个application.yml文件的示例如下所示。
settings1:
setting1: 192.168.1.100
settings2:
setting1: 192.168.1.101
---
spring:
profiles: test
settings1:
setting1: 192.168.1.102
和测试用例,如下所示
@SpringBootTest
@ActiveProfiles("test")
class ApplicationTest {
@Value("${settings1.setting1}")
String setting1;
@Value("${settings2.setting1}")
String setting2;
@Test
void test() {
System.out.println(setting1);
System.out.println(setting2);
}
}
192.168.1.101
编辑
对于单独/多个yml文件,
settings1:
setting1: 192.168.1.102
我现在开始使用JUnit5和Spring Boot的测试。我有一个包含控制器、服务和存储库的Rest API,以及一些使用从我的获取属性的utils类。我没有使用Spring中的“profiles”,只是使用默认配置。 我的应用程序主: 我的项目的体系结构是: 我在主测试类中尝试了“@TestPropertySource”和/或“@ActiveProfiles(”Test“)”,但没有成功。还尝试
背景:我想根据模式自动验证XML文件。为此,我在中创建了一个maven-project和一个-class。 为了运行测试,我在中创建了。我的想法是将XML和XSD文件(我想要验证)放入文件夹,并按文件名“抓取”它们。但是当我运行时,找不到文件。 我的测试类: 当我运行时,我得到了一个文件找不到的异常,例如-它在资源文件夹中。 我尝试了Maven(surefire)的解决方案:通过-标记复制文件,从
问题内容: 我正在寻找在使用本地文件对Golang进行测试时应该使用的最佳实践。 通过使用本地文件,我的意思是为了测试功能,应用程序需要一些本地文件,因为该应用程序经常从这些文件中读取数据。 我不确定是否应该在使用ioutil包tempdir和tempfile函数运行测试之前自己写临时文件,还是创建一个测试文件夹? 然后从里面的内容中读取 谢谢 问题答案: 这是我当前的测试设置: 特定于单个程序包
我有以下pom.xml: 注意,上的元素被注释掉了 在中还有以下内容 因此,我希望Maven做的只是用替换,除非开发配置文件被激活,否则我希望Maven用替换 当我运行时,它将值设置为。很好,资源筛选工作正常。 但是,当我运行时,它将值设置为 如果取消对配置文件上的元素的注释并运行,则会将设置为 我甚至运行了让它输出活动的配置文件名称,并且在上面的两种情况下,它都表示开发配置文件是活动的,但是如果
我正在使用gradle来构建和测试我的应用程序。我使用命令 但是当从eclipse中运行时,测试工作完美,当使用gradle运行时失败。我的测试定义如下,它找不到的属性文件在这两个文件夹中: /home/user/Development/git/myproject/src/main/java/com/mycompany/config/home/user/Development/git/myproj