在 CI/CD 管道中,我們有一個(gè) Go 腳本,它在實(shí)際構(gòu)建我們的可交付工件之前進(jìn)行一些預(yù)處理。如果我將腳本命名為 main.go,這在 GoLang 世界中是犯規(guī)還是可以?我不明白是否有任何與腳本的實(shí)際文件名相關(guān)的命名空間問題。我知道 main.go 是腳本,main_test.go 是單元測試,所以我很謹(jǐn)慎并尋求指導(dǎo)。例如,如果我從 shell (MacOS bash) 執(zhí)行以下命令: go test 這將執(zhí)行 main.go 腳本的單元測試,這讓我相信 main 是某種保留文件名。不過,我很容易出錯(cuò)。想法?
1 回答

千巷貓影
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
文件名main.go
并不特殊。
Go 檢測到一個(gè)文件是測試的一部分,因?yàn)樗?結(jié)尾_test.go
,并檢測到一個(gè)包是二進(jìn)制文件(而不是庫),因?yàn)榘?code>main(換句話說,它以 開頭package main
)。您可以使用main.go
在庫中命名的文件。
您可以在源代碼中go/build
查看go build
在文件中查找的內(nèi)容。它只檢查_test
后綴,這里:
isTest := strings.HasSuffix(name, "_test.go")
- 1 回答
- 0 關(guān)注
- 79 瀏覽
添加回答
舉報(bào)
0/150
提交
取消