我想在 上發布一個軟件包。為了開發它,我創建了以下文件結構github.com/mylogin/mypackagemypackage/├─ mypackage.go├─ go.mod // used to be mypackage.mod by mistake├─ tests/│ ├─ firsttest_test.go│ ├─ secondtest_test.gomypackage.go將具有一個函數 (mypackage(...))我的包裝.mod目前是go.modmodule github.com/mylogin/mypackagego 1.17我的問題:在編寫測試時,我需要導入:mypackage一方面,我無法導入,因為它還沒有github.com/mylogin/mypackage另一方面,我應該導入,因為它最終是其他人(或操作)復制測試的方式。github.com/mylogin/mypackage我怎樣才能擺脫這種矛盾呢?我的文件的正確布局應該是什么?
2 回答

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
mypackage.mod
目前
必須將該文件稱為 。Go 工具鏈將忽略任何其他名稱。go.mod
一方面,我無法導入,因為它還沒有
github.com/mylogin/mypackage
這實際上并不重要。如果你有一個文件(請參閱上面關于更正文件名的注釋),Go知道在發出網絡請求之前首先要考慮這個問題。這意味著它將在項目的頂層找到,并意識到您當前的項目就是該模塊,并使用自己。go.mod
go.mod

慕無忌1623718
TA貢獻1744條經驗 獲得超4個贊
一方面,我無法導入,因為它還沒有
github.com/mylogin/mypackage
可以,因為它是同一模塊中的包。import "github.com/mylogin/mypackage"
如果由于某種原因而無法正常工作,則文件中的指令或文件中的語句中可能存在拼寫錯誤。module
go.mod
import
_test.go
也就是說,通常 測試將與它自己位于同一目錄中:github.com/mylogin/mypackage
mypackage
mypackage/ ├─ go.mod ├─ mypackage.go ├─ firsttest_test.go ├─ secondtest_test.go
如果要從外部用戶的角度測試包的 API,可以聲明文件而不是 。_test.go
package mypackage_test
package mypackage
(有關更多詳細信息,請參閱輔助測試
。
- 2 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消