2 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
在Command Go 中描述:測(cè)試標(biāo)志的描述:
-bench regexp
Run benchmarks matching the regular expression.
By default, no benchmarks run. To run all benchmarks,
use '-bench .' or '-bench=.'.
-run regexp
Run only those tests and examples matching the regular
expression.
所以語(yǔ)法是你必須用空格或等號(hào)(沒有撇號(hào))分隔它,你指定的是一個(gè)正則表達(dá)式:
go test -bench BenchmarkMyTest
go test -run TestMyTest
或者:
go test -bench=BenchmarkMyTest
go test -run=TestMyTest
精確指定 1 個(gè)函數(shù)
由于指定的表達(dá)式是一個(gè)正則表達(dá)式,這也將匹配名稱包含指定名稱的函數(shù)(例如,名稱以 this 開頭的另一個(gè)函數(shù),例如"BenchmarkMyTestB")。如果您只想匹配"BenchmarkMyTest",請(qǐng)附加正則表達(dá)式單詞邊界'\b':
go test -bench BenchmarkMyTest\b
go test -run TestMyTest\b
請(qǐng)注意,僅將其附加到末尾就足夠了,就好像函數(shù)名稱不以 開頭一樣"Benchmark",它不被視為基準(zhǔn)函數(shù),同樣,如果它不以 開頭"Test",則不被視為測(cè)試函數(shù)(無(wú)論如何都不會(huì)被拾?。?/p>

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
我發(fā)現(xiàn)這些答案不完整,所以這里有更多的主題......
以下命令運(yùn)行以BenchmarkMyTest
(BenchmarkMyTest1, BenchmarkMyTest2, etc...)開頭的所有基準(zhǔn)測(cè)試,并跳過所有測(cè)試-run=^$ .
您還可以指定測(cè)試持續(xù)時(shí)間,-benchtime 5s
或者您可以強(qiáng)制b.ReportAllocs()
使用-benchmem
以獲得如下值:
BenchmarkLogsWithBytesBufferPool-48 46416456 26.91 ns/op 0 B/op 0 allocs/op
最后的命令是:
go test -bench=^BenchmarkMyTest . -run=^$ . -v -benchtime 5s -benchmem
- 2 回答
- 0 關(guān)注
- 251 瀏覽
添加回答
舉報(bào)