当前位置:  开发笔记 > 编程语言 > 正文

使用ScalatraSuite(FunSuiteLike)进行独立sbt项目的Scalatra测试失败

如何解决《使用ScalatraSuite(FunSuiteLike)进行独立sbt项目的Scalatra测试失败》经验,为你挑选了1个好方法。

我正在对scalatra路由进行测试,但对独立的sbt项目(使用Jetty)使用ScalatraSuite(FunSuiteLike)失败。

产生的错误是:
java.lang.IllegalArgumentException:要求失败:检测到的本地端口<1,这是不允许的

我还尝试过单独运行码头,然后再运行“ sbt测试”,但同时也引发了同样的错误。谁能帮忙解决这个问题?



1> sean_robbins..:

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

就我而言,我混入了一个特性,该特性覆盖了beforeAll和afterAll方法。这意味着ScalatraSuite中定义的beforeAll和afterAll没有运行。这是Scalatra / Scalatest文档中有关ScalatraSuite的报价,它帮助我弄清了问题所在-

请注意,以上所有特征都是基于ScalatraSuite的,它混合在BeforeAndAfterAll中。它会覆盖beforeAll()和afterAll(),因此它可以启动/停止嵌入式HTTP服务器。因此,如果您的测试类也需要重写beforeAll和/或afterAll,只需记住调用super.beforeAll()和/或super.afterAll()。

ScalatraSuite的beforeAll()没有运行,因此我的Scalatra测试实例未运行。如果问题的起因相同,则可能需要解决此问题的所有步骤才需要在测试类的beforeAll()步骤中调用super.beforeAll()。就我而言,我必须重新设计项目中的beforeAll()步骤,以便可以设置许多不同的依赖项,但是我可以确保在ScalatraSuite中调用beforeAll()。

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有