在单独的测试包中测试覆盖率
当出于组织目的将测试文件分成不同的包时,获取目标代码的覆盖率统计信息可以成为一个挑战。这个问题探讨了这种情况的解决方法,其中测试包位于 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中文网其他相关文章!