我有这个测试班:
class PostIT {
companion object {
@BeforeClass
@JvmStatic
fun initialise() {
baseURI = "http://localhost:4567"
Server.start()
}
@AfterClass
@JvmStatic
fun tearDown() {
Server.stop()
}
}
//some test cases
}
class UserIT {
companion object {
@BeforeClass
@JvmStatic
fun initialise() {
baseURI = "http://localhost:4567"
Server.start()
}
@AfterClass
@JvmStatic
fun tearDown() {
Server.stop()
}
}
//some test cases
}
和Server
对象:
object Server {
fun start() {
Spark.init()
prepareRoutes()
}
fun stop() {
Spark.stop()
}
private fun prepareRoutes() {
get("/users", whatever)
//more routes
}
}
当我分别运行两个测试类时,它可以正常工作。但是,当我告诉IDE同时运行两个测试类时,在运行第二个测试类时得到connection refused error
。
当服务器停止时,它再也不会启动。就像Spark.init()
在服务器停止后无法正常工作。
我还尝试过在Spark.awaitInitialization()
之后致电Spark.init()
。
我想念什么?
答案 0 :(得分:0)
解决了!实际上,问题不在于停止后的服务器初始化。我们必须等到服务器停止。我找到了解决方法here。
fun stop() {
try {
Spark.stop()
while (true) {
try {
Spark.port()
Thread.sleep(500)
} catch (ignored: IllegalStateException) {
break
}
}
} catch (ex: Exception) {
}
}