首页  >  文章  >  后端开发  >  当测试位于单独的包中时,如何获取包的准确覆盖率统计数据?

当测试位于单独的包中时,如何获取包的准确覆盖率统计数据?

Susan Sarandon
Susan Sarandon原创
2024-10-28 20:39:30792浏览

How to Obtain Accurate Coverage Stats for a Package When Tests Are in a Separate Package?

在单独的测试包中测试覆盖率

当出于组织目的将测试文件分成不同的包时,获取目标代码的覆盖率统计信息可以成为一个挑战。这个问题探讨了这种情况的解决方法,其中测试包位于 api_client_tests 中,代码位于 api_client 中。

问题:

如何准确覆盖率统计当相关测试位于单独的包中时,是否为正在测试的 api_client 包获取?

解决方案:

提供的解决方案涉及使用 go test 命令和-cover 和 -coverpkg 标志。通过使用 -coverpkg 标志指定 api_client 包作为覆盖目标:

go test -cover -coverpkg "api_client" "api_client_tests"

将专门为 api_client 包中的代码生成覆盖率统计信息,即使测试位于外部 api_client_tests 中。

替代方法:

虽然上述方法是一个可行的解决方案,但它偏离了典型的 Go 约定,即将测试文件与代码保存在同一个包中。测试。这可能会导致调试和协作困难。

另一种方法,如评论中提到的,是将测试文件简单地移动到与被测代码相同的包中。这可确保与特定功能或组件相关的所有代码都分组在一起,以便于维护。

以上是当测试位于单独的包中时,如何获取包的准确覆盖率统计数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

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