在gocheck测试框架中,他们如何使用标志选项进行基准测试?在我提供的链接中,似乎是他们提供的唯一示例是通过运行go test -check.b
,但是,他们没有提供有关其工作原理的其他注释,因此很难使用它。当我执行go help test
时,我甚至无法在 go 文档中找到-check,也不知道如何在中
func (s *MySuite) BenchmarkLogic(c *C) {
for i := 0; i < c.N; i++ {
// Logic to benchmark
}
}
有变量 c.N.如何指定该变量?它是通过实际程序本身还是通过 go test 及其标志或命令行?
在旁注中,go help testflag
中的文档确实讨论了-bench regex
,benchmem
和benchtime t
选项,但是,它没有讨论-check.b
选项。但是,我确实尝试按照此处所述运行这些选项,但它并没有真正执行任何我可以注意到的操作。gocheck 是否与
我看到的主要问题是没有明确的文档如何使用 gocheck 工具或其命令。我不小心给了它一个错误的标志,它给了我一个错误消息,建议我需要有用的命令(其中有限的描述):
-check.b=false: Run benchmarks
-check.btime=1s: approximate run time for each benchmark
-check.f="": Regular expression selecting which tests and/or suites to run
-check.list=false: List the names of all tests that will be run
-check.v=false: Verbose mode
-check.vv=false: Super verbose mode (disables output caching)
-check.work=false: Display and do not remove the test working directory
-gocheck.b=false: Run benchmarks
-gocheck.btime=1s: approximate run time for each benchmark
-gocheck.f="": Regular expression selecting which tests and/or suites to run
-gocheck.list=false: List the names of all tests that will be run
-gocheck.v=false: Verbose mode
-gocheck.vv=false: Super verbose mode (disables output caching)
-gocheck.work=false: Display and do not remove the test working directory
-test.bench="": regular expression to select benchmarks to run
-test.benchmem=false: print memory allocations for benchmarks
-test.benchtime=1s: approximate run time for each benchmark
-test.blockprofile="": write a goroutine blocking profile to the named file after execution
-test.blockprofilerate=1: if >= 0, calls runtime.SetBlockProfileRate()
-test.coverprofile="": write a coverage profile to the named file after execution
-test.cpu="": comma-separated list of number of CPUs to use for each test
-test.cpuprofile="": write a cpu profile to the named file during execution
-test.memprofile="": write a memory profile to the named file after execution
-test.memprofilerate=0: if >=0, sets runtime.MemProfileRate
-test.outputdir="": directory in which to write profiles
-test.parallel=1: maximum test parallelism
-test.run="": regular expression to select tests and examples to run
-test.srt=false: run smaller test suite to save time
-test.timeout=0: if positive, sets an aggregate time limit for all tests
-test.v=false: verbose: print additional output
编写错误的命令是获得此工具帮助的唯一方法吗?它没有帮助标志或其他东西?
我迟到了 5 年,但要指定运行多少 N 次。使用选项-benchtime Nx
。
例子:
go test -bench=. -benchtime 100x
BenchmarkTest 100...ns / op
请阅读有关所有 go 测试标志here的更多信息。
-bench regexp
Run benchmarks matching the regular expression.
By default, no benchmarks run. To run all benchmarks,
use '-bench .' or '-bench=.'.
-check.b
的工作方式与-test.bench
相同。
例如,运行所有基准测试:
go test -check.b=.
运行特定基准:
go test -check.b=BenchmarkLogic
可以找到更多关于 Go 测试的信息here
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(42条)