首页 >后端开发 >Golang >如何在我的 Go 覆盖率报告中包含外部包调用?

如何在我的 Go 覆盖率报告中包含外部包调用?

Linda Hamilton
Linda Hamilton原创
2024-12-01 10:27:10858浏览

How Can I Include External Package Calls in My Go Coverage Report?

在 Go 覆盖范围中包含包调用

问题:

在一个 Go 项目中,多包结构中,当前测试包之外的包中的某些功能将被覆盖率报告忽略。具体来说,位于 db 包中的 bar.go 中的函数尽管是从 api 包中的 foo.go 调用的,但并未显示任何覆盖范围。

解决方案:

至解决这个问题,应该将 -coverpkg 标志添加到 go test 命令中。 -coverpkg 标志指定覆盖率报告中包含哪些包。

说明:

默认情况下,覆盖率报告仅包含测试直接导入的包包裹。在这种情况下,foo_test.go(foo.go的测试包)不会直接导入db,因此bar.go中的函数不会被覆盖。

添加-coverpkg标志显式包含指定的包在覆盖率分析中。在这种情况下,以下命令将在覆盖率报告中包含当前目录 (./...) 中的所有包:

go test -coverpkg=./... coverprofile=coverage.out ./...

这将生成一个覆盖率报告,其中包括对 bar 的函数调用。来自 foo.go。

注意:

使用 -coverpkg 标志可能会影响测试执行时间,因为它需要分析大量的包。但跨包函数调用需要获取准确的覆盖率信息。

以上是如何在我的 Go 覆盖率报告中包含外部包调用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn