golang 在進行整個項目測試的時候沒有問題,但是在測試單個文件的時候經常會報錯,報錯一些函數undefined
build failed
,構建失敗,我們應該就能看出一下信息。go test與其他的指定源碼文件進行編譯或運行的命令程序一樣(參考:go run
和go build
),會為指定的源碼文件生成一個虛擬代碼包——“command-line-arguments”,對於運行這次測試的命令程序來說,測試源碼文件getinfo_test.go
是屬於代碼包“command-line-arguments”的,可是它引用了其他包中的數據並不屬於代碼包“command-line-arguments”,編譯不通過,錯誤自然發生了。
那么在編譯的時候把需要引用的文件都放到-v 作為參數,那么就可以測試通過了(如果引入了a文件,a文件又引用了b文件,那么b也要加在參數里)
go test -v add_test.go add.go