第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Go gRPC 服務(wù)器使集成測(cè)試失敗

Go gRPC 服務(wù)器使集成測(cè)試失敗

Go
蝴蝶不菲 2023-03-21 14:30:31
我最近又開(kāi)始玩 go,目前我的任務(wù)是實(shí)現(xiàn)一個(gè)服務(wù)(將運(yùn)行在 k8s 上),它應(yīng)該充當(dāng) gRPC 服務(wù)器。根據(jù)要求,目前,為了滿足 k8s 上的 readinessProbe,我需要為我的服務(wù)實(shí)現(xiàn)一個(gè)健康檢查端點(diǎn),并且應(yīng)該對(duì)此進(jìn)行測(cè)試:我所做的是:func main() {    server := startHTTPServer()    defer server.Close()    c := make(chan os.Signal, 1)    signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGINT)    <-c    log.Println("Stopped")}func startHTTPServer() *http.Server {    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {        w.WriteHeader(http.StatusOK)    })    server := &http.Server{        Addr: net.JoinHostPort("", strconv.Itoa(livelinessPort)),    }    go server.ListenAndServe()    return server}我按照這篇文章以這種方式進(jìn)行了測(cè)試:func TestMain(m *testing.M) {    flag.Parse()    wg := setup()    result := m.Run()    shutdown(wg)    os.Exit(result)}func shutdown(wg *sync.WaitGroup) {    syscall.Kill(syscall.Getpid(), syscall.SIGINT)    wg.Wait()}func setup() *sync.WaitGroup{    os.Setenv("APP_ENV", EnvTest)    wg := &sync.WaitGroup{}    startMainProcess(wg)    return wg}func startMainProcess(wg *sync.WaitGroup) {    go func() {        wg.Add(1)        defer wg.Done()        main()    }()}func TestK8SHealth(t *testing.T) {    res, err := http.Get("http://:8080/")    if err != nil {        t.Errorf("Unexpected API error: %s", err)        return    }    defer res.Body.Close()    if res.StatusCode != http.StatusOK {        t.Errorf("Unexpected status code: %d", res.StatusCode)        return    }}到目前為止一切順利:$ go testPASS2018/08/13 09:23:16 Stoppedok      github.com/...        0.015s
查看完整描述

1 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

grpcServer.Serve(lis)是一個(gè)阻塞調(diào)用。所以就像你對(duì) HTTP server 所做的那樣go server.ListenAndServe(),你需要在一個(gè) goroutine 中運(yùn)行它。你能試試看是否go grpcServer.Serve(lis)能讓測(cè)試通過(guò)嗎?

我不確定你的新 EDIT 表明問(wèn)題出在聽(tīng)眾身上。您可以檢查是否net.Listen("tcp", fmt.Sprintf(":%d", serverPort))返回或阻止。


查看完整回答
反對(duì) 回復(fù) 2023-03-21
  • 1 回答
  • 0 關(guān)注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)