我想知道如果使用go build ./...
編譯二進制文件,將編譯到go二進制代碼中。這將編譯一個包含cli程序的二進制文件。對於這個cli程序,我有測試代碼和非測試代碼。我公司目前擁有的測試代碼幾種口味:在包將測試代碼僅引用在測試文件被編譯進二進制文件?
foo_test.go
foo_test
- 在包
foo_internal_test.go
foo
testutil.go
封裝testutil
提供測試實用功能
沒有測試代碼實際上引用在非測試代碼中。 testutil函數只能在測試文件中導入。
如果測試代碼被事實編譯到二進制文件中,那麼這個問題有多大?
你指的是什麼二進制文件?如果你沒有構建測試二進制文件,那麼你不會編譯'* _test.go'文件,所以它們在鏈接過程中不會被排除,它們根本就不會被編譯。 – JimB
我希望澄清問題 – snorberhuis
'* _test.go'文件僅包含在命名包中的'go test'命令中。否則,它們甚至不會被編譯器所識別。 – JimB