我有一個 Go 應用程式,在根目錄和名為“message”的子檔案夾中都有許多單元和基準測驗。
我執行以下命令從根目錄運行所有單元測驗,包括訊息和任何其他子檔案夾中的單元測驗:
go test ./...
我想為基準測驗實作相同的目標,即全部運行它們。以下適用于根目錄中的那些:
go test -bench .
/messages 檔案夾中的基準測驗被忽略,這是預期的。所以我從根目錄運行以下命令:
go test -bench ./...
這根本無法識別,Go 似乎執行了位于根目錄中的單元測驗。我什至嘗試在命令中指定訊息檔案夾,如下所示:
go test -bench ./message
...但它也失敗了。目前,如果我想在訊息檔案夾中運行基準測驗,我必須 cd 進入該檔案夾并執行
go test -bench .
像上面一樣。
那么正確的方法是什么呢?如何告訴 Go 在根檔案夾和子檔案夾中查找基準測驗?在 -bench 標志的情況下,正則運算式 arg 如何作業?顯然它與單元測驗運行器的正則運算式不同。
uj5u.com熱心網友回復:
您應該使用./...bench 來處理當前作業目錄及其所有子目錄中的所有檔案。如果您希望獲得更詳細的輸出,可以使用該-v標志。使用 . 列出記憶體分配也很好-benchmem。
go test -v ./... -bench=. -run=xxx -benchmem
uj5u.com熱心網友回復:
-benchflag采用正則運算式,以便-bench .在所有包中運行所有基準測驗 ( ):go test -bench=. ./...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422094.html
標籤:
下一篇:通道和等待組進入死鎖
