播放 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 - 测试配置的主要内容,如果未能解决你的问题,请参考以下文章

附加播放配置文件

play 2.6.3 在运行时从 application.conf 检测数据库,但在测试期间不检测

启动自动测试时 Play Framework 中的配置日志记录

play2 有选择地覆盖 application.conf 中运行任务的设置

在 Tomcat 上播放框架 1.x - httpOnly cookie

播放框架正则表达式 CORS