为 API 测试生成测试覆盖率? (最好是节点/笑话)

Generate test coverage for API tests? (for node / jest preferably)

我在 nodejs 中有服务公开了 API (rest/graphQL)。我有不同类型的测试(单元、集成、功能 = API)。我可以获得单位和整合的保险。但是

我还想以某种方式为功能测试生成测试覆盖率(API/黑盒),最好是节点,jest 测试框架。这意味着测试针对 运行 服务生成实际的 HTTP 请求,现在当它到达被测系统时,它应该映射受请求影响的行并将其传递回测试运行器。在官方文档中没有找到此类功能。也许某种插件?

我记得大约 10 年前,使用 php 和一些 phpunit magic .. 它可以拦截 http 请求并将其映射到文件系统。 OFC 当你 运行 测试时,你不应该对系统做任何其他请求。

我会想象这样的架构:

+---------------+                   +------------------------+
| jest API test | ==> http call ==> | HTTP server            |
+---------------+                   | coverage middleware    |
                                    | actual routes & code   |
                                    +------------------------+

显然你可以用 nyc 做到这一点。它只是包装节点,当您停止该过程时,它将生成受影响行的覆盖范围

nyc node index.js