GoLang 单元测试覆盖率报告的生成方式为:执行 go test -cover 生成覆盖率数据。执行 go tool cover -html=coverage.out 生成 HTML 覆盖率报告。
单元测试是软件开发中必不可少的一部分,它有助于我们验证代码的正确性。 GoLang 内置了强大的单元测试框架,并且提供了生成测试覆盖率报告的功能,该报告可以帮助我们了解哪些代码被测试,哪些没有。
在 GoLang 中,我们可以使用 -cover
标志来生成覆盖率报告。该标志需要与 go test
命令一起使用,如下所示:
go test -cover
执行该命令后,GoLang 编译器会在 coverage.out
文件中生成覆盖率数据。
要查看覆盖率报告,我们可以使用以下命令:
go tool cover -html=coverage.out
这将生成一个 HTML 报告,显示每个包、文件和函数的覆盖率。
考虑以下 GoLang 代码:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
我们可以使用以下命令生成测试覆盖率报告:
go test -cover
生成的 coverage.out
文件中的相关部分可能如下所示:
coverage.out total: 62.5% stat.go: 0.0% strconv/atoi.go: 87.5% strconv/decimal.go: 66.7% strconv/hash.go: 0.0% strconv/numeric.go: 100.0% strconv/test.go: 0.0% strconv/utf8.go: 0.0%
该报告显示,strconv
包的覆盖率为 87.5%,而 stat.go
文件的覆盖率为 0%。
-covermode=set
标志来生成较小的覆盖率文件。go tool cover -func
命令查看每个函数的覆盖率详情。