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

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

如何在開發過程中構建包?

如何在開發過程中構建包?

Go
Cats萌萌 2022-09-26 15:51:12
我想在 上發布一個軟件包。為了開發它,我創建了以下文件結構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.modgo.mod


查看完整回答
反對 回復 2022-09-26
?
慕無忌1623718

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

一方面,我無法導入,因為它還沒有github.com/mylogin/mypackage

可以,因為它是同一模塊中的包。import "github.com/mylogin/mypackage"

如果由于某種原因而無法正常工作,則文件中的指令或文件中的語句中可能存在拼寫錯誤。modulego.modimport_test.go


也就是說,通常 測試將與它自己位于同一目錄中:github.com/mylogin/mypackagemypackage

mypackage/
├─ go.mod
├─ mypackage.go
├─ firsttest_test.go
├─ secondtest_test.go

如果要從外部用戶的角度測試包的 API,可以聲明文件而不是 。_test.gopackage mypackage_testpackage mypackage

(有關更多詳細信息,請參閱輔助測試


查看完整回答
反對 回復 2022-09-26
  • 2 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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