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

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

不運行名為 package_test.go 的程序

不運行名為 package_test.go 的程序

Go
米琪卡哇伊 2021-12-07 16:49:31
我在包pack1下有以下代碼。文件名是pack1.gopackage pack1var Pack1Int int = 42var pack1Float = 3.14func ReturnStr() string {    return "Hello world!"}以及主程序中的以下代碼。文件名是package_test.gopackage mainimport (    "fmt"    "./pack1")func main() {    var test1 string    test1 = pack1.ReturnStr()    fmt.Printf("Return string from pack1 : %s\n", test1)    fmt.Printf("Integer from pack1 : %d\n", pack1.Pack1Int)}當我嘗試使用命令運行它時,出現go run package_test.go以下錯誤:go run: cannot run *_test.go files (package_test.go)但是如果我將文件重命名為abc.go那么我會得到正確的輸出,即Return string from pack1 : Hello world!Integer from pack1 : 42我很好奇使用package_test.goas 文件名有什么問題。對于只有主包的代碼,這個名稱工作正常。這是 Go 中的錯誤還是我做錯了什么?
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

不是錯誤,它是這樣設計的。go run檢測_test文件并將它們視為包的測試文件,測試文件將被編譯為單獨的包,然后與主測試二進制文件鏈接并運行。
建議把你的包文件放到GOPATH/src/PACK_NAME/,然后*_test.gogo test.

查看完整回答
反對 回復 2021-12-07
?
慕娘9325324

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

你不能命名你的程序文件,*_test.go因為這是集成 Go測試系統的一部分

要編寫新的測試套件,請創建一個名稱以 _test.go 結尾的文件,其中包含此處所述的 TestXxx 函數。將該文件與正在測試的文件放在同一個包中。該文件將從常規包構建中排除,但會在運行“go test”命令時包含在內。有關更多詳細信息,請運行“go help test”和“go help testflag”。

只需重命名package_test.gopackagetest.go


查看完整回答
反對 回復 2021-12-07
  • 2 回答
  • 0 關注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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