在测试环境中加载相同的属性(yaml)文件?
Loading the same properties(yml) files in testing enviornment?
我想知道我是否可以在测试环境中加载与实际加载相同的 .yml 属性 文件。
例如我有一个测试:
\src\test\java\security\TokenTest.java
注释:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@ActiveProfiles("dev")
那么我有:
\src\main\resources\application.yml
当我 运行 应用程序时,环境从 yml 位置获取 属性-source。
每当我 运行 我的测试时,环境都看不到这个文件 - 即 属性-source 不是 created/populated.
显而易见的解决方案是将重复文件放到测试位置:
\src\test\resources\application.yml
它会加载,但这很糟糕 - 因为它会在感知测试资源和主要资源之间的差异时引起不必要的混淆。
如果每个环境都有配置文件,那么之前的问题会得到解决。
有没有办法从 src/main/resources 加载资源进行测试?
这可能是一些我不知道的基本类路径扫描概念。
我的情况是,当你在 src/main/resources 中每个环境有 5 个 yml 属性文件然后你在 src/test/resources 中有 5 个相应的 yml 属性文件并且你的团队中的某个人将100% 在某些时候会在它们之间引入差异,使其他人长期流血。
因此无论如何测试都必须引用相同的配置文件,以免在其自己的无效上下文中丢失。
解决方法:尝试"rebuild"项目。
Is there a way to load resources from src/main/resources for tests?
对我有用。也许您的 IDE 没有在保存时将更改复制到输出目录或其他内容(我听说 IntelliJ 用户必须打开该功能)?
我遇到了和你一样的问题,但我发现这是我在 intellij 中的 运行 配置中的类路径问题,当设置它时,它应该像它一样工作作为魅力加载 application.yml 来自 main/resources.
我想知道我是否可以在测试环境中加载与实际加载相同的 .yml 属性 文件。
例如我有一个测试:
\src\test\java\security\TokenTest.java
注释:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@ActiveProfiles("dev")
那么我有:
\src\main\resources\application.yml
当我 运行 应用程序时,环境从 yml 位置获取 属性-source。
每当我 运行 我的测试时,环境都看不到这个文件 - 即 属性-source 不是 created/populated.
显而易见的解决方案是将重复文件放到测试位置:
\src\test\resources\application.yml
它会加载,但这很糟糕 - 因为它会在感知测试资源和主要资源之间的差异时引起不必要的混淆。
如果每个环境都有配置文件,那么之前的问题会得到解决。
有没有办法从 src/main/resources 加载资源进行测试?
这可能是一些我不知道的基本类路径扫描概念。
我的情况是,当你在 src/main/resources 中每个环境有 5 个 yml 属性文件然后你在 src/test/resources 中有 5 个相应的 yml 属性文件并且你的团队中的某个人将100% 在某些时候会在它们之间引入差异,使其他人长期流血。
因此无论如何测试都必须引用相同的配置文件,以免在其自己的无效上下文中丢失。
解决方法:尝试"rebuild"项目。
Is there a way to load resources from src/main/resources for tests?
对我有用。也许您的 IDE 没有在保存时将更改复制到输出目录或其他内容(我听说 IntelliJ 用户必须打开该功能)?
我遇到了和你一样的问题,但我发现这是我在 intellij 中的 运行 配置中的类路径问题,当设置它时,它应该像它一样工作作为魅力加载 application.yml 来自 main/resources.