【问题标题】:Scalatra test failing using ScalatraSuite (FunSuiteLike) for standlone sbt project使用 ScalatraSuite (FunSuiteLike) 进行独立 sbt 项目的 Scalatra 测试失败
【发布时间】:2015-12-03 09:43:05
【问题描述】:

我正在尝试使用ScalatraSuite (FunSuiteLike) 对 Scalatra 路由进行测试。运行测试时收到IllegalArgumentException 并出现以下错误:

检测到的本地端口为

我也尝试单独运行 Jetty,然后运行“sbt test”,但出现了同样的错误。谁能帮忙解决这个问题?

【问题讨论】:

    标签: scala jetty scalatest scalatra


    【解决方案1】:

    我遇到了同样的错误,并且能够找出原因是什么。

    就我而言,我混合了一个覆盖 beforeAllafterAll 方法的特征。这意味着 ScalatraSuite 中定义的 beforeAllafterAll 没有运行。这是来自Scalatra's documentation for ScalatraSuite 的引用,它帮助我找出问题所在:

    请注意,以上所有特征均基于ScalatraSuite 混入BeforeAndAfterAll。它覆盖beforeAll()afterAll() 所以它可以启动/停止嵌入式 HTTP 服务器。因为 那,如果你的测试类也需要覆盖beforeAll 和/或 afterAll 记得打电话给super.beforeAll() 和/或 super.afterAll().

    由于我的自定义beforeAll 钩子没有调用super.beforeAll(),因此没有调用Scalatra 启动HTTP 服务器的机制,因此没有运行测试服务器。将super.beforeAll() 添加到我的自定义beforeAll 方法可以解决问题。

    就我而言,我必须重新设计项目中的beforeAll 步骤,以便可以设置许多不同的依赖项...但我能够确保调用ScalatraSuite 中的beforeAll() .

    【讨论】:

      【解决方案2】:

      不是直接的答案,但我遇到了同样的错误,发现是特定的测试会抛出这个错误,而不是全部。我的问题最终是一个代码格式问题,其中一个错误的{ 使单个测试包含其他测试。

      因此,最终,如果测试一直在运行,然后因出现此错误而停止,则很可能是与代码相关的问题。我在 scalatra.specs2 中发现了这一点,但在 ScalatraSuite 中也可能发生同样的情况。

      希望你解决了你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-11
        • 2019-11-04
        • 2011-10-09
        • 1970-01-01
        • 2015-04-27
        • 2013-04-10
        相关资源
        最近更新 更多