繁体   English   中英

在测试golang中终止正在运行的进程

[英]kill running process in test golang

编写基于http.ListenAndServe的程序并编写测试,我遇到了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)))
}

我的目标是能够运行测试,并在启动服务器侦听器后将其杀死并返回成功消息

你不能 为了能够停止,您需要手动创建侦听器

listener, err := net.Listen("http", ":"+port)
err=http.Serve(listener, http.FileServer(http.Dir(directory)))

那么你也能

err=listener.Close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM