如何获取外部API的覆盖率报告?

时间:2016-10-06 12:06:22

标签: node.js mocha istanbul

我试图获取API代码的覆盖率报告。我让所有的测试用例都在mocha中完美运行。我的问题是我的API服务器和测试用例都是用不同的存储库编写的。

我在localhost上,在特定端口上启动我的节点API服务器,然后在mocha中使用supertest,点击localhost url来测试服务器的响应。

您能否建议我为这些API生成覆盖率报告的最佳方式?

1 个答案:

答案 0 :(得分:0)

测试环境

如果你想获得报道,supertest应该能够引导app服务器,就像在express example中一样。

缺点是你不能对正在运行的服务器运行测试,比如

var api = request('http://127.0.0.1:8080');

但是你必须包含你的app入口点以允许supertest像

那样启动它
var app = require('../yourapp'); 
var api = request(app);

当然,这可能(或可能不会)导致您的应用程序引导过程进行一些重构。

作为其他选项,您可以使用节点CLI调试功能或使用node-inspector

覆盖范围设置

假设您愿意与mocha一起安装istanbul以获得保险。

npm install -g istanbul

然后

istanbul cover mocha --root <path> -- --recursive <test-path>
  • cover是用于生成代码覆盖率的命令
  • mocha是用于运行测试的可执行文件js文件
  • --root <path>查找文件的根路径(也就是“源文件”)
  • --用于将参数传递给测试运行器
  • --recursive <test-path>查找测试文件的根路径

然后,您可以添加--include-all-sources以获取有关所有源文件的封面信息。

此外,您还可以获得更多帮助 istanbul help cover