2 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
您必須導(dǎo)入包才能使用該包。
去.mod:
module example.app
main.go:
package main
func F() {}
func main() {}
main_test.go
package main_test
import (
"testing"
"example.app" // import the main package
)
func TestF(t *testing.T) {
main.F()
}
上面的代碼假設(shè) main*.go 與 go.mod 的 package 位于同一目錄中example.app。替換example.app為您的模塊的名稱。調(diào)整路徑以匹配您的應(yīng)用程序。例如,如果 main*.go 文件位于cmd/example包含 go.mod 的目錄下的目錄中,則使用導(dǎo)入路徑example.app/cmd/example而不是example.app.
請(qǐng)注意,測(cè)試可以通過(guò)這種方式導(dǎo)入主包,但非測(cè)試代碼不能。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
問(wèn)題是它main_test與main.
要訪問(wèn)其中的函數(shù),main您需要main像這樣導(dǎo)入和訪問(wèn)函數(shù):main.F()
此外, notef以小寫字母開頭,因此不會(huì)從 package 中導(dǎo)出main。要在其中訪問(wèn)它,main_test需要將其導(dǎo)出(可以通過(guò)將其更改為以大寫字母開頭來(lái)完成:F)。
或者,您可以將測(cè)試文件更改為在 package 中main。
使用注釋編輯:導(dǎo)入時(shí)main請(qǐng)注意導(dǎo)入路徑按目錄名稱。通常,Go 中的開發(fā)人員將他們的包放在與包同名的目錄中(例如,放在main名為 的目錄中main)。在您的情況下,包和目錄名稱不同,因此導(dǎo)入將import ".../folder1"不是import ".../main". 您仍然可以使用main.F()來(lái)訪問(wèn)該功能:
package main_test
import (
"testing"
"../folder1" // use the full path to folder1 from the root of your module
)
func TestF(t *testing.T) {
main.F()
}
- 2 回答
- 0 關(guān)注
- 175 瀏覽
添加回答
舉報(bào)