2 回答
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
當(dāng) go 正常構(gòu)建軟件包時(shí)(或),它將忽略任何具有名稱模式的文件。這意味著僅從這些測(cè)試文件導(dǎo)入的任何包的目標(biāo)代碼都不會(huì)鏈接到可執(zhí)行文件中。go buildgo install*_test.go
因此,如果您只是小心不要從非測(cè)試代碼中導(dǎo)入測(cè)試包,那么您就很好。
如果您不確定,可以通過(guò)運(yùn)行以下命令來(lái)檢查“構(gòu)建列表”:
go list -m all
從模塊的根目錄開(kāi)始。這將列出為生成提供包的模塊集。
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng)您運(yùn)行 時(shí),它將:go build
檢查正在構(gòu)建的包中的語(yǔ)句
import檢查每個(gè)導(dǎo)入的包中的語(yǔ)句
import...依此類推,直到它找到所有傳遞依賴項(xiàng)。
然后,對(duì)于要生成的每個(gè)包,它會(huì)檢查生成約束,并生成未排除的文件。 默認(rèn)情況下,文件是排除的,在生成測(cè)試時(shí)顯式包含它們。
*_test.gogo test
這意味著:
測(cè)試文件不會(huì)包含在非測(cè)試版本中,除非您顯式包含它們。
完全不會(huì)包含未引用的包。
其中的內(nèi)容與生成無(wú)關(guān):它僅用于依賴項(xiàng)管理,而不是編譯。
go.mod
- 2 回答
- 0 關(guān)注
- 217 瀏覽
添加回答
舉報(bào)
