如何获取外部 API 的覆盖率报告?
How to get coverage report for external APIs?
我正在尝试获取 API 代码的覆盖率报告。我在 mocha 中完美地拥有所有测试用例 运行。我的问题是我的 API 服务器和测试用例是在不同的存储库中编写的。
我在本地主机的特定端口上启动我的节点 API 服务器,然后在 mocha 中使用 supertest,点击本地主机 url 来测试服务器的响应。
你能建议我为那些 API 生成覆盖率报告的最佳方法吗?
测试环境
如果你想获得覆盖,supertest 应该可以 bootstrap 应用服务器,就像在 express example 中一样。
缺点是您不能运行针对运行ning服务器进行测试,例如
var api = request('http://127.0.0.1:8080');
但您必须包含您的应用程序入口点以允许 supertest 像
一样启动它
var app = require('../yourapp');
var api = request(app);
当然,这可能(也可能不会)导致对您的应用 bootstrap 流程进行一些重构。
作为其他选项,您可以使用节点 CLI 调试功能或使用 node-inspector。
覆盖设置
假设您愿意安装 istanbul 与 mocha 关联以获得覆盖范围。
npm install -g istanbul
然后
istanbul cover mocha --root <path> -- --recursive <test-path>
cover
是用于生成代码覆盖率的命令
mocha
是用来运行测试的可执行js文件
--root <path>
查找要检测的文件的根路径(又名 "source files")
--
用于将参数传递给您的测试 运行ner
--recursive <test-path>
查找测试文件的根路径
然后您可以添加 --include-all-sources
以获取所有源文件的封面信息。
另外你可以获得更多的帮助运行ning
istanbul help cover
我正在尝试获取 API 代码的覆盖率报告。我在 mocha 中完美地拥有所有测试用例 运行。我的问题是我的 API 服务器和测试用例是在不同的存储库中编写的。
我在本地主机的特定端口上启动我的节点 API 服务器,然后在 mocha 中使用 supertest,点击本地主机 url 来测试服务器的响应。
你能建议我为那些 API 生成覆盖率报告的最佳方法吗?
测试环境
如果你想获得覆盖,supertest 应该可以 bootstrap 应用服务器,就像在 express example 中一样。
缺点是您不能运行针对运行ning服务器进行测试,例如
var api = request('http://127.0.0.1:8080');
但您必须包含您的应用程序入口点以允许 supertest 像
一样启动它var app = require('../yourapp');
var api = request(app);
当然,这可能(也可能不会)导致对您的应用 bootstrap 流程进行一些重构。
作为其他选项,您可以使用节点 CLI 调试功能或使用 node-inspector。
覆盖设置
假设您愿意安装 istanbul 与 mocha 关联以获得覆盖范围。
npm install -g istanbul
然后
istanbul cover mocha --root <path> -- --recursive <test-path>
cover
是用于生成代码覆盖率的命令mocha
是用来运行测试的可执行js文件--root <path>
查找要检测的文件的根路径(又名 "source files")--
用于将参数传递给您的测试 运行ner--recursive <test-path>
查找测试文件的根路径
然后您可以添加 --include-all-sources
以获取所有源文件的封面信息。
另外你可以获得更多的帮助运行ning
istanbul help cover