Junit 为什么我会得到;“拒绝连接”;重新启动Spark服务器后出错?
我有这样的测试课程:Junit 为什么我会得到;“拒绝连接”;重新启动Spark服务器后出错?,junit,kotlin,integration-testing,spark-java,Junit,Kotlin,Integration Testing,Spark Java,我有这样的测试课程: class PostIT { companion object { @BeforeClass @JvmStatic fun initialise() { baseURI = "http://localhost:4567" Server.start() } @AfterClass @JvmStatic f
class PostIT {
companion object {
@BeforeClass
@JvmStatic
fun initialise() {
baseURI = "http://localhost:4567"
Server.start()
}
@AfterClass
@JvmStatic
fun tearDown() {
Server.stop()
}
}
//some test cases
}
和
服务器
对象:
object Server {
fun start() {
Spark.init()
prepareRoutes()
}
fun stop() {
Spark.stop()
}
private fun prepareRoutes() {
get("/users", whatever)
//more routes
}
}
当我分别运行这两个测试类时,它工作得很好。但是,当我告诉IDE运行这两个测试类时,当运行第二个测试类时,我得到了连接拒绝错误
似乎当服务器停止时,它就再也不会启动了。这就像服务器停止后,Spark.init()
不工作一样
我还尝试在Spark.init()
之后调用Spark.initialization()
我错过了什么?解决了!实际上,问题不在于停止后的服务器初始化。我们必须等到服务器停止。我找到了解决办法
object Server {
fun start() {
Spark.init()
prepareRoutes()
}
fun stop() {
Spark.stop()
}
private fun prepareRoutes() {
get("/users", whatever)
//more routes
}
}
fun stop() {
try {
Spark.stop()
while (true) {
try {
Spark.port()
Thread.sleep(500)
} catch (ignored: IllegalStateException) {
break
}
}
} catch (ex: Exception) {
}
}