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

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

無法生成 gin-gonic 服務(wù)器應(yīng)用程序的代碼覆蓋率報(bào)告

無法生成 gin-gonic 服務(wù)器應(yīng)用程序的代碼覆蓋率報(bào)告

Go
縹緲止盈 2023-06-05 17:40:44
go版本:go版本go1.11.2 linux/amd64gin 版本(或提交參考):提交 #5acf660操作系統(tǒng):Ubuntu 16.04LTS描述我正在嘗試使用示例應(yīng)用程序?yàn)?gin 服務(wù)器生成代碼覆蓋率報(bào)告。示例.gopackage mainimport (        "github.com/gin-gonic/gin")func main() {        r := gin.Default()        r.GET("/ep1", getEp1)        r.GET("/ep2", getEp2)        //r.Run()}func getEp1(c *gin.Context) {}func getEp2(c *gin.Context) {}這是我的測(cè)試文件:sample_test.gopackage mainimport (        "fmt"        "testing")func TestRunMain(t *testing.T) {        fmt.Println("TestRunMain ...")        main()}生成代碼覆蓋率的命令:$ go test -covermode=count -coverpkg ./... -test.coverprofile cover.cov測(cè)試運(yùn)行主要...[GIN-debug] [WARNING] 創(chuàng)建一個(gè)引擎實(shí)例,其中已經(jīng)附加了 Logger 和 Recovery 中間件。[GIN 調(diào)試] [警告] 在“調(diào)試”模式下運(yùn)行。在生產(chǎn)中切換到“發(fā)布”模式。使用環(huán)境:export GIN_MODE=release使用代碼:gin.SetMode(gin.ReleaseMode)[GIN 調(diào)試] GET /ep1 --> _/home/ubuntu/tmp/sample.getEp1(3 個(gè)處理程序)[GIN 調(diào)試] GET /ep2 --> _/home/ubuntu/tmp/sample.getEp2(3 個(gè)處理程序)經(jīng)過覆蓋率:100.0% 的語(yǔ)句在 ./...好的_/home/ubuntu/tmp/sample 0.013s這是 cover.cov 文件的內(nèi)容:模式:計(jì)數(shù)/home/ubuntu/tmp/sample/sample.go:7.13,12.2 3 1/home/ubuntu/tmp/sample/sample.go:14.30,15.2 0 0/home/ubuntu/tmp/sample/sample.go:17.30,18.2 0 0到目前為止一切都很好!但如您所見,我還沒有運(yùn)行服務(wù)器。在文件:sample.go 中,當(dāng)我取消注釋行 r.Gin() 時(shí),服務(wù)器運(yùn)行。要退出應(yīng)用程序,我需要執(zhí)行 Ctrl+C。在這種情況下,不會(huì)生成代碼覆蓋率報(bào)告。我錯(cuò)過了什么?r.Gin() 在 sample.go 中未注釋的命令行輸出:$ go test -covermode=count -coverpkg ./... -test.coverprofile cover.cov測(cè)試運(yùn)行主要...[GIN-debug] [WARNING] 創(chuàng)建一個(gè)引擎實(shí)例,其中已經(jīng)附加了 Logger 和 Recovery 中間件。[GIN 調(diào)試] [警告] 在“調(diào)試”模式下運(yùn)行。在生產(chǎn)中切換到“發(fā)布”模式。使用環(huán)境:export GIN_MODE=release使用代碼:gin.SetMode(gin.ReleaseMode)[GIN 調(diào)試] GET /ep1 --> _/home/ubuntu/tmp/sample.getEp1(3 個(gè)處理程序)[GIN 調(diào)試] GET /ep2 --> _/home/ubuntu/tmp/sample.getEp2(3 個(gè)處理程序)[GIN-debug] 環(huán)境變量 PORT 未定義。默認(rèn)使用端口:8080[GIN-debug] 在 :8080 上監(jiān)聽和服務(wù) HTTP^Csignal:中斷失敗 _/home/ubuntu/tmp/sample 0.711scover.go 的內(nèi)容:$ 貓封面.cov模式:計(jì)數(shù)誰(shuí)能告訴我我在這里缺少什么?
查看完整描述

1 回答

?
拉莫斯之舞

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

我不太清楚杜松子酒是什么,但我想我可以看到你的問題。在您的測(cè)試中,您正在調(diào)用具有 http 偵聽器的 main,這就是您抱怨的行。似乎您認(rèn)為您需要 CTRL + C 才能讓您的應(yīng)用程序作為某種守護(hù)進(jìn)程運(yùn)行,但這是錯(cuò)誤的,您正在做的是提示您的應(yīng)用程序過早結(jié)束,這會(huì)中斷您的測(cè)試并輸出錯(cuò)誤消息。

要回答您的問題,您需要?jiǎng)?chuàng)建一個(gè)測(cè)試套件,您可以在其中運(yùn)行測(cè)試并在這些測(cè)試停止時(shí)選擇它以放下您的 http 服務(wù)器。

func TestMain(m *testing.M) {

? ? /*set up your router or?

? ? ? ? database connections or

? ? ? ? anything else you'll need

? ? */

? ? exitCode := m.Run()

? ? os.Exit(exitCode)

}

現(xiàn)在,在為您的端點(diǎn)運(yùn)行測(cè)試時(shí),您將需要發(fā)出模擬 http 請(qǐng)求,有點(diǎn)像真實(shí)用戶。

我將提供一個(gè)通用的小例子。

func ATest(t* testing.T){? ??

? ? req, _ := http.NewRequest("GET", "/route", nil)

? ? responseRecorder = httptest.NewRecorder()

? ? router.ServeHTTP(responseRecorder, req)

? ? if (http.StatusOk != responseRecorder.Code){

? ? ? ? t.Fail()

? ? }

}

讓我知道這是否對(duì)您有幫助。


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

添加回答

舉報(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)