忽略Golang测试覆盖率计算中的代码块

jon*_*zza 23 unit-testing code-coverage go

我正在为golang代码编写单元测试,并且在计算覆盖率时,我希望忽略几种方法.这可能吗?如果是这样,怎么样?

Jas*_*oco 16

一种方法是将您不想测试的函数放在单独的go文件中,并使用构建标记来防止它在测试期间被包含.例如,我有时会在应用程序中执行此操作,其中我有一个main.go带有main函数的文件,可能是一个使用函数等,没有经过测试.然后你可以添加一个测试标签或类似的东西,go test -v -cover -tags test主要可能看起来像:

//+build !test

package main

func main() {
    // do stuff
}

func usage() {
    // show some usage info
}
Run Code Online (Sandbox Code Playgroud)

  • 而// @ build test`评论之后的**空行**很重要.`+ build注释必须出现在package子句之前,后面跟一个空行` (4认同)
  • 我还发现标签名称中没有破折号:`unit-tests`不起作用,而`unit_tests`则不行. (2认同)