在多個Go 模組的父目錄中運行go test
當遇到子目錄中有多個Go 模組的目錄結構時,執行go test從父目錄中取得可能會帶來挑戰。下面的程式碼片段示範了這個問題:
/root /one go.mod go.sum main.go main_test.go /two go.mod go.sum main.go main_test.go
從根目錄運行go test./... 將導致錯誤:
go: warning: "./..." matched no packages no packages to test
出現這種情況是因為go test是專門設計用於對位於目前目錄或其父目錄中的單一模組進行操作。它不支援嵌套模組或從多個模組的父目錄執行測試。
要解決此問題,解決方案是建立 shell 腳本或使用 find 之類的實用程式導航到每個單獨的模組並執行 go在這些目錄中進行測試。例如:
cd /root/one go test . cd /root/two go test .
或者,某些項目可能會利用 Makefile 或 test.sh 腳本來自動執行此程序。例如,以下假設專案中的 test.sh 腳本循環遍歷模組列表並為每個目錄執行 go test:
#!/bin/bash modules="one two three" for module in $modules; do cd $module go test . cd .. done
以上是如何在多個Go模組的父目錄中執行'go test”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!