使用单独的测试文件测试包覆盖率
在组织包含大量测试文件的代码库时,将测试与实际情况分开可能会更有利代码库清晰并遵守最佳实践。在这种情况下,测试文件可能与被测代码驻留在不同的包中。
获取实际被测包的覆盖率统计信息时会出现一个潜在的挑战。默认情况下,测试仅覆盖它们所在的包。此问题源于 Go 的方法,该方法规定代码和测试文件应共存于同一个包中。
解决方案
幸运的是,Go 为这个困境提供了解决方案:
go test -cover -coverpkg "api_client" "api_client_tests"
通过指定“-coverpkg”标志,您可以指示 Go 测量指定包(本例中为“api_client”)的覆盖率),同时从单独的包(“api_client_tests”)运行测试。这使您可以准确地确定 API 客户端包的覆盖范围,而无需将其与测试文件合并。
替代方法
虽然使用单独的测试包可以虽然在组织方面提供了好处,但值得注意的是,这种方法偏离了传统的 Go 组织代码和测试的方式。如果黑盒测试是您的主要目标,其中只有公共包 API 可供测试访问,则可以使用替代方法:
以上是如何在 Go 中测量具有单独测试文件的包的覆盖率?的详细内容。更多信息请关注PHP中文网其他相关文章!