如何获得 GoLang 微服务的集成测试覆盖率

问题描述

我创建了几个基于 Rest API 的微服务,这些微服务在服务器的不同端口上运行。 然后我编写了一个测试代码,它实际上通过 HTTP 向 serviceA(它又调用 serviceB)发送了一个 Rest API 调用,并获取它的响应,对其进行解码并将其与预期的响应进行比较。
这一切正常,但是当我以 go test -cover

运行它时,测试显示 0.0% 的覆盖率
src/
|--serviceA/
|     |--main.go
|     |--integration_test.go
|--serviceB/
      |--main.go

我手动运行每个服务。

go run serviceA/main.go   // Listens on port X
go run serviceB/main.go   // Listens on port Y

我的 integration_test.go一个 TestFunc(),它使用 serviceA/main.gohttp.Client{} 从字面上调用 http.NewRequest()一个 REST API 端点,然后检查响应。 响应符合预期,但 serviceA 的覆盖率为 0.0%,这不应该是这种情况,因为它实际上发回了一些数据,因此执行了多行。

服务 A 和 B 不是 lib 包,所以我不能使用 -coverpkg cmd 提到的 here

可能我正在寻找可以覆盖黑盒组件/服务的工具。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)