目录

以下是 go test 命令的一些常用参数及其使用说明,这些参数可以帮助你更高效地运行测试、分析性能和优化代码:

1. 基本测试参数

  • -v:显示详细的测试输出,包括每个测试用例的名称、状态(成功或失败)、耗时以及日志信息。

    go test -v
    
  • -run:通过正则表达式指定要运行的测试函数。

    go test -run TestSpliceString
    
  • -failfast:在第一个测试失败时立即停止测试。

    go test -failfast
    
  • -count:指定测试运行的次数,默认为 1 次。

    go test -count=2
    

2. 基准测试参数

  • -bench:运行基准测试,可以通过正则表达式指定特定的基准测试。

    go test -bench=.          # 运行所有基准测试
    go test -bench=^Benchmark # 运行所有以 Benchmark 开头的测试
    
  • -benchtime:指定基准测试的运行时间,默认为 1 秒。

    go test -bench=. -benchtime=2s
    

3. 测试覆盖率参数

  • -cover:启用测试覆盖率分析。

    go test -cover
    
  • -coverprofile:将测试覆盖率结果输出到指定文件。

    go test -coverprofile=cover.out
    
  • -covermode:设置覆盖率分析模式(setcountatomic),默认为 set

    go test -cover -covermode=count
    
  • -coverpkg:指定覆盖率分析的包范围。

    go test -cover -coverpkg=./...
    

4. 其他参数

  • -race:启用竞态条件检测。

    go test -race
    
  • -timeout:设置测试的超时时间,默认为 10 分钟。

    go test -timeout=5m
    
  • -cpu:指定测试运行时的 CPU 核心数。

    go test -cpu=2
    
  • -parallel:允许并行运行测试函数。

    go test -parallel=4
    
  • -list:列出所有匹配的测试、基准测试或示例,但不运行。

    go test -list=TestSpliceString
    
  • -shuffle:随机化测试和基准测试的执行顺序。

    go test -shuffle=on
    

5. 测试范围

  • 运行当前目录及其子目录的所有测试

    go test ./...
    
  • 运行指定目录的测试

    go test ./dir
    
  • 运行指定文件的测试

    go test splice.go splice_test.go
    

6. 查看覆盖率报告

运行测试并生成覆盖率报告后,可以使用以下命令在浏览器中查看可视化结果:

go test -coverprofile=cover.out
go tool cover -html=cover.out

通过这些参数,你可以更灵活地控制测试的运行方式、分析性能、检查代码覆盖率以及优化代码质量。


9ong@TsingChan 文章内容由 AI 辅助生成。