gpt4 book ai didi

scala - 在 SBT 中启动 Scala 应用程序进行集成测试

转载 作者:行者123 更新时间:2023-12-04 20:45:42 24 4
gpt4 key购买 nike

我有一个使用嵌入式 Jetty 运行的 Scalatra Web 服务。我现在想编写以下集成测试:

  • 启动服务(使用应用程序的main方法)
  • 运行测试(驱动 HTTP 接口(interface))
  • 停止服务。

  • 这都应该由 SBT 命令触发。

    我该怎么办?

    最佳答案

    您可以在 Specs 等 BDD 测试框架之上编写此类集成测试。 Unfiltered项目有许多这样的示例,它们应该适用于其他 Web 框架,例如 Scalatra。

    例如,看看 ServerSpec :

    "A Server" should {
    "respond to requests" in {
    http(host as_str) must_== "test"
    }
    ....
    }

    它正在启动 setup 中指定的测试服务器并在规范中使用 Dispatch 击中它。关键部分在 unfiltered.spec.jetty.Served trait 中实现,您所描述的就是:启动和停止服务。还有Specs2版本: unfiltered.specs2.jetty.Served .

    您可以使用的另一个技巧是 sbt-revolver ,这是我在进行任何 Web 开发时最喜欢的插件,特别是与 JRebel 结合使用。这个插件可以在后台加载你的网络服务器。我没有一起尝试过测试,但是如果您在测试期间不必更改服务器端,它可能会起作用。

    关于scala - 在 SBT 中启动 Scala 应用程序进行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18302347/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com