簡體   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