类型安全配置:从 src/test/resources 加载配置

问题描述 投票:0回答:3

这是一个初学者问题。所以我的应用程序结构看起来像

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

那么覆盖不起作用,为什么?

java configuration akka typesafe typesafe-stack
3个回答
14
投票

如果您想加载该测试配置文件,请尝试以下操作:

ConfigFactory.load("modules/test.module")

基本

ConfigFactory.load()
方法会加载“application.conf”。 如果您希望它加载不同的文件,您需要告诉它该不同的文件是什么。


1
投票

从测试资源根加载:

f.ex:

someModule/src/test/resources/some.conf

这对我有用:

ConfigParseOptions options = ConfigParseOptions.defaults().setAllowMissing(false);
        
final Config config =  ConfigFactory.parseResources("some.conf", options);

0
投票

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

运行测试
© www.soinside.com 2019 - 2024. All rights reserved.