亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在沒有 _test 的情況下進行測試

如何在沒有 _test 的情況下進行測試

Go
慕婉清6462132 2022-06-01 11:16:42
我有一個包和許多測試文件。web |- client.go |- client_test.go |- server.go |- server_test.go |- ...如果我想運行go test client_test.go,它會為我報告錯誤。package web  // not the package name web_testfunc TestHost(t *testing.T) {      hostPort, hostNoPort := hostPortNoPort()}// error: undefined hostPortNoPort// But this function actually defined in the client.go
查看完整描述

2 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

這行不通。原因是當您運行 go test 時,go 執行構建以創建測試可執行文件并運行它以獲得結果。限制的來源是go build

go help build

如果要構建的參數是來自單個目錄的 .go 文件列表,則 build 將它們視為指定單個包的源文件列表。

當您僅將 client_test.go 作為輸入時go testgo build將假定這個文件是一個完整的包。因此,它不會解析hostPortNoPort已定義的文件。這會觸發構建錯誤。

你只有兩個選擇。

  1. 將它放在 web_test 包中并運行go test client_test.go

  2. 使用 go test -run 匹配測試函數名稱

除非有一些用于測試函數名稱的命名邏輯,否則選項 2 可能會很痛苦。


查看完整回答
反對 回復 2022-06-01
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

嘗試這個

go test -v client_test.go

也許它可以幫助你


查看完整回答
反對 回復 2022-06-01
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號