播放 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
。
只有两种模式,dev
和 prod
。 dev
是测试模式)。我已经修改了答案以反映这一点。
没错!虽然看起来如果我有%unittest.application.mode=dev
和%test.application.mode=dev
,我将play id 设置为unittest 并启动play test
,它加载%test
配置而不是%unittest
.
我正在阅读文档。现在查看源代码,事实证明,如果您正在运行 test
,则必须使用特殊前缀 test-
。我已经用http.port
属性对其进行了测试,它是这样工作的。答案已更新(再次)。以上是关于播放 application.conf - 测试配置的主要内容,如果未能解决你的问题,请参考以下文章
play 2.6.3 在运行时从 application.conf 检测数据库,但在测试期间不检测
启动自动测试时 Play Framework 中的配置日志记录
play2 有选择地覆盖 application.conf 中运行任务的设置