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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

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

1 回答

?
拉莫斯之舞

TA貢獻1820條經(jīng)驗 獲得超10個贊

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

要回答您的問題,您需要創(chuàng)建一個測試套件,您可以在其中運行測試并在這些測試停止時選擇它以放下您的 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)在,在為您的端點運行測試時,您將需要發(fā)出模擬 http 請求,有點像真實用戶。

我將提供一個通用的小例子。

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

? ? }

}

讓我知道這是否對您有幫助。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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