使用ConfigFactory在单元测试中加载不同的配置文件

时间:2017-08-27 20:48:47

标签: scala unit-testing

我在主应用程序中有不同的配置文件:

  • applicaton.conf
  • integration.conf
  • staging.conf
  • production.conf

在主应用程序中,我可以使用以下内容加载不同的配置,其中"integration.conf"被定义为环境变量:

ConfigFactory.load("integration.conf")

然而,相同的功能似乎在单元测试中不起作用。上面的代码没有任何内容。我尝试了以下操作,没有参数,然后加载默认的applicaton.conf没有问题:

ConfigFactory.load()

我们如何在单元测试中加载特定的配置文件?

我也尝试过使用相对路径:

ConfigFactory.load("../main/resources/integration.conf")

甚至绝对路径:

ConfigFactory.load("/Users/.../src/main/resources/integration.conf")

但它们都不起作用。

编辑:

我意识到在@ pedromss的评论之后staging.confproduction.conf被正确加载。唯一有问题的是integration.conf。这可能是因为integration.conf只有一行:

integration.conf

include file("application.conf")

似乎问题是include file("application.conf")不起作用?我的其他配置和生产配置实际上覆盖了application.conf中的默认值:

staging.conf

include file("application.conf")
foo {
    bucket="bucket-staging"
}

问题似乎include file("xxx")应为include "xxx"。感到惊讶的是,只有后来才能在单元测试中工作。

1 个答案:

答案 0 :(得分:1)

来自documentation

include "application.conf" - 然后您可以覆盖配置。

include file("application.conf")不起作用,我在文档中没有看到它。