我在Scala中有一个IntelliJ IDEA项目,并开始添加org.specs2测试。我无法找到如何放入将由测试使用的application.conf文件。
我尝试过以下操作:
test
resources
application.conf
scala
mypackage.myname
MyTestSpec
然后调用
ConfigFactory.load()
在MyTestSpec中。但是,没有加载任何来自src文件夹的resources子文件夹的application.conf,也没有加载。我的目标是能够针对某些测试环境编写集成测试(请不要讨论这个目标的有效性......)。
如何做到这一点还是有更好的方法来实现它?我今天开始阅读specs2文档,我对Scala也很陌生,所以我只是假设这是测试配置应该如何工作。
到目前为止,我已尝试在测试的构建配置中指定-Dconfig.file = my_test_conf_full路径(来自IntelliJ中的Build / Configurations ...菜单),但这没有任何区别。
谢谢。
答案 0 :(得分:5)
将自定义配置文件放在buckets = new Array<Bucket>();
for(int i=1;i<BUCKET_COUNT;i++){
buckets.add(new Bucket(this,(rand.nextInt((int)W)-45),BUCKET_MARGIN*i));
}
//BUCKET_COUNT = 3;
//BUCKET_MARGIN = 220;
。
然后,将其添加到您的src/test/resources/application.test.conf
:
build.sbt
答案 1 :(得分:0)
您可以将带有路径的字符串传递给资源文件,“ConfigFactory”将从文件系统加载文件,而不是使用类加载器。请参阅overview。
您还可以使用ConfigValueFactory
构建自己的配置。请参阅ConfigValueFactory
。
我已成功使用前者进行测试,但后者看起来也很有趣。
答案 2 :(得分:0)
您可以通过项目设置在IntelliJ中添加application.conf:
文件 - 项目结构 - 模块 - 来源 - 选择文件夹(例如src / ressources) - &gt;标记为:单击资源
ressources文件夹将添加到右侧的窗格中。现在像
import com.typesafe.config.ConfigFactory
val value = ConfigFactory.load().getString("my.secret.value") // or
val db = Database.forConfig("h2mem1")
开始工作。