播放 application.conf - 测试配置

Posted

技术标签:

【中文标题】播放 application.conf - 测试配置【英文标题】:Play application.conf - test configs 【发布时间】:2012-09-06 16:42:37 【问题描述】:

在播放 application.conf 我有 default 值,%test%stage%prod 值:

%stage.application.mode=prod
%prod.application.mode=prod
%test.application.mode=test

#default values
property=someValue

%test.property=testValue

%stage.property=stageValue

%prod.property=prodValue

我无法更改这些,因为它们是在将应用部署到相应环境时使用的。

但是,我需要能够在测试模式下启动 Play,以便在本地机器上使用与 %test 不同的设置进行单元测试。

有没有办法添加另一个测试配置,比如%unittest 并使用这些配置在测试模式下开始播放(play test)?

【问题讨论】:

【参考方案1】:

它实际上是相反的:

你定义

%test-unit.application.mode=dev

重要提示:前缀必须是test-

并设置类似的值

%test-unit.property=testValue

最后,您需要在命令行中设置 Play 服务器的“id”:

$ play id

在本例中为test-unit

参考:http://www.playframework.org/documentation/1.2.5/guide11

【讨论】:

谢谢!你知道为什么我不能使用%test.application.mode=test 并在测试模式下开始游戏(play test)吗?我得到java.lang.IllegalArgumentException: No enum const class play.Play$Mode.TEST 只有两种模式,devproddev 是测试模式)。我已经修改了答案以反映这一点。 没错!虽然看起来如果我有%unittest.application.mode=dev%test.application.mode=dev,我将play id 设置为unittest 并启动play test,它加载%test 配置而不是%unittest. 我正在阅读文档。现在查看源代码,事实证明,如果您正在运行 test,则必须使用特殊前缀 test-。我已经用http.port 属性对其进行了测试,它是这样工作的。答案已更新(再次)。

以上是关于播放 application.conf - 测试配置的主要内容,如果未能解决你的问题,请参考以下文章