编写一个基于http.ListenAndServe
的程序并编写测试我已经遇到了问题。我的测试看起来像这样
package main
import (
"testing"
"../"
)
func TestServer(t *testing.T) {
Server.Server()
}
和测试函数
package Server
import (
"net/http"
)
var (
DefaultPort = "8080"
DefaultDir = "."
)
func Server() {
port := DefaultPort
directory := DefaultPort
http.ListenAndServe(":"+port, http.FileServer(http.Dir(directory)))
}
我的目标是能够运行测试并在启动服务器侦听器之后将其杀死并返回成功消息
答案 0 :(得分:0)
你不能。为了能够停止,您需要手动创建监听器
listener, err := net.Listen("http", ":"+port)
err=http.Serve(listener, http.FileServer(http.Dir(directory)))
然后你可以
err=listener.Close()