测试期间可以在 Play Framework 中启用 HTTPS 侦听吗?
Posted
技术标签:
【中文标题】测试期间可以在 Play Framework 中启用 HTTPS 侦听吗?【英文标题】:Can HTTPS listening be enabled in Play Framework during tests? 【发布时间】:2014-10-21 07:47:03 【问题描述】:我现在正在 Play 中进行一些涉及 HTTPS websocket 客户端的测试。它通过 Netty 实现 HTTPS 功能,所以我没有使用任何内置的 HTTP 类(例如 WS 命名空间中的任何东西)。我想编写几个测试来确保 SSL 正确连接并正确拒绝无效数据。
我的想法是让 Play 在测试期间使用示例密钥库运行 HTTPS,但是在测试中,Play 似乎不遵守 https.port 设置(我在测试期间收到“连接被拒绝”,但它可以工作正在开发中)。
我已将此添加到我的 build.sbt:
javaOptions in (Test) += "-Dhttps.port=23456"
有什么方法可以让 HTTPS 在测试中运行?
【问题讨论】:
你能发布一些失败的示例测试代码吗? 【参考方案1】:在运行使用 ScalaTest 编写的普通单元测试时,Play 应用程序通常不会在后台运行。以下库中可能有可以帮助您测试端点中的逻辑的构造:scalatestplus-play。您可以使用此库来模拟 HTTP/HTTPS 请求。如果您真的想测试 HTTPS,这实际上可能更容易使用简短的 shell 脚本来完成。
【讨论】:
以上是关于测试期间可以在 Play Framework 中启用 HTTPS 侦听吗?的主要内容,如果未能解决你的问题,请参考以下文章
Play Framework 2.4.1:在测试模式下忽略 play.application.loader 设置
Play framework & CAS - 如何登录功能测试?