这是一个初学者问题。所以我的应用程序结构看起来像
src/main/java/...
src/main/resources/application.conf
src/test/java/...
src/test/resources/module/test.module.conf
application.conf
location: mainLocation
测试.module.conf
location: testLocation
在我的测试中,我做到了
@Test
public void testLoadConfig() {
final Config config = ConfigFactory.parseResources("test.module.conf");
System.out.println(config);
}
以及我所看到的
Config(SimpleConfigObject({}))
肯定有什么地方不对劲,但我看不出来
更新
当我这样做时
@Test
public void testActorForFailure() {
// final Config config = ConfigFactory.load("test.module.conf");
final Config config = ConfigFactory.load();
System.out.println(config.getString("location"));
}
我明白了
mainLocation
那么覆盖不起作用,为什么?
如果您想加载该测试配置文件,请尝试以下操作:
ConfigFactory.load("modules/test.module")
基本
ConfigFactory.load()
方法会加载“application.conf”。 如果您希望它加载不同的文件,您需要告诉它该不同的文件是什么。
从测试资源根加载:
f.ex:
someModule/src/test/resources/some.conf
这对我有用:
ConfigParseOptions options = ConfigParseOptions.defaults().setAllowMissing(false);
final Config config = ConfigFactory.parseResources("some.conf", options);
com.typesafe.config.ConfigFactory.ConfigFactory.load()
将在加特林设置中从 src/test/resources
加载属性。
简单的方法可以如下
Config config = ConfigFactory.load();
String url = config.getString("your property defined in application.properties");
为每个环境加载属性的方法是
"test".equals(System.getProperty("env")) ? url : do something
使用
mvn gatling:test -Denv=test
运行测试