在Go 的子目錄中運行測試
透過將測試和範例放置在子目錄中來保持工作空間井然有序是一種有效的方法。本文探討了在 Go 中實現此目標的可行性和所需步驟。
在子目錄中測試
Go 允許您透過使用" 指定完整路徑來從子目錄執行測試./...":
go test ./...
此指令將掃描所有子目錄中的套件並執行其中的測試。但是,有一些影響需要考慮。
包存取和可見性
將測試文件放置在子目錄中時,在導出的變數和函數前添加包名稱前綴非常重要用於測試文件存取導出的內容。非導出成員將無法存取。
go test 與go test -cover
使用go test -cover 時 對於程式碼覆蓋率,使用go test -cover 時 對於程式碼覆蓋率,使用
-coverpkg=./...go test -coverpkg=./... ./...
整合測試
從 Go 1.20 開始,現在支援整合測試進行覆蓋率分析。在構建可執行文件時使用-cover 和
GOCOVERDIRgo build -cover -o myprogram.exe myprogram.go mkdir somedata GOCOVERDIR=somedata ./myprogram.exe
備用方法
您也可以將測試分離到不同的套件中,而不將它們放在子目錄中。例如,套件「foo」的測試可以駐留在同一目錄中的套件「foo_test」中,確保只能存取「foo」的匯出成員。
結論雖然從子目錄運行測試在技術上是可行的,但這可能不是組織和可訪問性的最佳實踐。在同一目錄中建立單獨的測試包的替代方法是更有效地管理測試的可行選擇。以上是你可以在 Go 的子目錄中執行測試嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!