我正在对scalatra路由进行测试,但对独立的sbt项目(使用Jetty)使用ScalatraSuite(FunSuiteLike)失败。
产生的错误是:
java.lang.IllegalArgumentException:要求失败:检测到的本地端口<1,这是不允许的
我还尝试过单独运行码头,然后再运行“ sbt测试”,但同时也引发了同样的错误。谁能帮忙解决这个问题?
我也遇到了同样的错误,并且能够找出原因。
就我而言,我混入了一个特性,该特性覆盖了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()。