首頁 >後端開發 >Golang >如何在子目錄中組織 Go 測試和範例以獲得更乾淨的工作空間?

如何在子目錄中組織 Go 測試和範例以獲得更乾淨的工作空間?

Barbara Streisand
Barbara Streisand原創
2024-11-17 21:07:01421瀏覽

How to Organize Go Tests and Examples in Subdirectories for a Cleaner Workspace?

Golang子目錄測試

問題:是否可以建立一個組織有測試和範例的Go包放在子目錄中以保持更乾淨的工作空間?

答案:是的。您可以使用 go test ./... 指令遞歸來執行 Go 測試,列出所有要測試的套件。

測試檔案放置

子目錄測試檔案:

如果將_test.go 檔案放在子資料夾中,則go test ./... 指令將包含它們。但是,您必須為匯出的變數和函數新增套件名稱前綴,以便能夠在測試檔案中進行存取。未匯出的內容仍然無法存取。

同一目錄測試檔案:

儘管有子目錄測試檔案的選項,但將它們與主來源檔案放在一起仍然是更好的選擇,因為這樣比較容易

程式碼覆蓋率

使用-cover 或-coverprofile 的程式碼覆蓋率:

  • 使用go test -coverpkg= ./。 .. ./... 用於覆蓋所有包。
  • 或者,使用 go-cover-treemap.io 進行互動式覆蓋視覺化。

整合測試覆蓋率

從Go 1.20 開始,覆蓋率工具擴展到整合測試:

  • 使用go build -cover -o myprogram.exe myprogram.go 建立具有覆蓋率的執行檔。
  • 執行 GOCOVERDIR=somedata ./myprogram.exe 來收集覆蓋率資料。
  • 將在 somedata 中產生覆蓋率文件。

單獨的包測試

根據 kbolino,您可以將測試放在單獨的包中,而不需要單獨的目錄。這允許測試檔案命名為 foo_test 並駐留在與套件 foo 相同的目錄中,同時仍限制對私有成員的存取。

以上是如何在子目錄中組織 Go 測試和範例以獲得更乾淨的工作空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn