加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

你如何使用go(golang)gocheck测试框架的基准标志?

发布时间:2020-12-16 19:23:23 所属栏目:大数据 来源:网络整理
导读:如何使用 gocheck测试框架的基准测试标志选项?在我提供的链接中,似乎它们提供的唯一示例是运行go test -check.b,但是,它们没有提供有关其工作方式的其他注释,因此很难使用它.当我去帮助测试时,我甚至找不到-check在go文档中,也没有找到帮助testflag.特别是
如何使用 gocheck测试框架的基准测试标志选项?在我提供的链接中,似乎它们提供的唯一示例是运行go test -check.b,但是,它们没有提供有关其工作方式的其他注释,因此很难使用它.当我去帮助测试时,我甚至找不到-check在go文档中,也没有找到帮助testflag.特别是我想知道如何更好地使用基准测试框架并控制它运行的时间或运行的迭代次数等等.例如,在他们提供的示例中:
func (s *MySuite) BenchmarkLogic(c *C) { 
    for i := 0; i < c.N; i++ { 
        // Logic to benchmark 
    } 
}

有变量c.N.如何指定该变量?它是通过实际程序本身还是通过测试及其标志或命令行?

另外,来自go help testflag的文档确实谈到了-bench regex,benchmem和benchtime t选项,它没有讨论-check.b选项.但是我确实尝试按照那里的描述运行这些选项,但它并没有真正做我能注意到的任何事情. gocheck是否可以使用go测试的原始选项?

我看到的主要问题是没有关于如何使用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.short=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

写错了命令是获得这个工具帮助的唯一方法吗?它没有帮助标志或什么?

看 Description_of_testing_flags:
-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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读