集成测试在确保 REST API 的可靠性和有效性方面发挥着至关重要的作用。然而,测量这些测试所实现的覆盖范围可能具有挑战性。本文解决了一个常见问题:在包边界外部编写集成测试时获得准确的测试覆盖率。
正如查询中提到的,单独使用 go test -cover 可能会产生 0不属于测试包一部分的集成测试的覆盖率结果百分比。原因在于覆盖工具仅考虑正在测试的软件包,而不考虑它们使用的软件包。
解决方案在于使用 -coverpkg 指令。此选项允许您指定要测量其覆盖范围的特定包,即使这些包没有经过显式测试。例如,以下命令:
$ go test -cover -coverpkg mypackage ./src/api/...
将测量 mypackage 包内的覆盖率,即使测试本身是在单独的包中定义的。
为了说明差异,请考虑以下场景:
无 -coverpkg:
$ go test -cover ./src/api/... ok /api 0.191s coverage: 71.0% of statements ok /api/mypackage 0.023s coverage: 0.7% of statements
使用 -coverpkg:
$ go test -cover -coverpkg mypackage ./src/api/... ok /api 0.190s coverage: 50.8% of statements in mypackage ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
如您所见,使用 -coverpkg 时 mypackage 覆盖率显着更高,从而更准确地表示所实现的实际覆盖率。
通过利用 -coverpkg根据指令,开发人员可以有效地测量集成测试中使用的包的覆盖范围,从而使他们能够识别需要进行额外测试的区域。这种增强的覆盖率报告有助于开发更强大、更可靠的软件系统。
以上是如何衡量 Golang 中已测试包之外的集成测试覆盖率?的详细内容。更多信息请关注PHP中文网其他相关文章!