在Go 中運行測試時,遇到錯誤“testing: warning: no tests to run”,儘管有測試功能可能會令人沮喪。以下是您可能遇到此問題的原因以及解決方法:
Go 測試函數遵循特定的命名約定:它們必須以前綴「Test」開頭。如果您的測試函數名為“testNormalizePhoneNum”而不是“TestNormalizePhoneNum”,並帶有大寫“T”,則測試工具將忽略它。重新命名函數以遵守此約定。
對於需要測試不遵循命名約定的函數的高級場景,可以使用 -run 標誌在 go test 命令中。此標誌可讓您指定與測試函數名稱相符的正規表示式。例如,要強制執行“testNormalizePhoneNum”:
go test -run=testNormalizePhoneNum
「沒有要執行的測試」錯誤的另一個潛在原因是未包含您的測試檔案在測試套件中。確保您的 main_test.go 檔案與 main.go 在同一目錄中,並且測試檔案的名稱以“_test.go”結尾。
如果套件名稱在你的 main_test.go 檔案與 main.go 中的套件名稱不匹配,測試工具將無法辨識測試函數。確保兩個檔案中的套件名稱相同。
測試函數必須有特定的簽章。它應該採用 *testing.T 類型的單一參數,並且不應該傳回任何內容。如果您的測試函數不符合此要求,測試工具將不會將其視為有效的測試函數。
遵守這些準則,您可以確保您的測試函數被測試正確識別並執行工具,使您能夠有效地測試您的 Go 程式碼。
以上是為什麼即使測試函數存在,Go 也會報告「測試:警告:沒有要執行的測試」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!