无需使用推荐测试框架,能否获取Node.js应用的代码覆盖率?
可以获取该Node.js应用的代码覆盖率,方案非常简单
代码覆盖率统计的是被测服务运行过程中实际执行的代码范围,和你用什么工具发请求触发业务逻辑完全无关,你自行开发的Excel驱动接口测试工具不需要做任何改造,只需要调整被测服务的启动方式即可:
具体操作步骤
- 第一步:安装
nyc(istanbul的官方命令行工具),它负责给Node.js代码做运行时插桩,统计代码执行情况 - 第二步:用
nyc启动你的Node.js应用,替换原来的启动命令即可。比如原来的启动命令是node app.js,替换为:npx nyc node app.js - 第三步:正常运行你自己开发的测试工具,跑完Excel里所有的测试用例,这期间所有接口请求触发的代码执行都会被自动统计
- 第四步:所有用例执行完成后,正常停止Node.js服务(比如用Ctrl+C终止进程),nyc会自动输出覆盖率统计结果,默认会在终端展示行、分支、函数、块四个维度的覆盖率,也可以配置参数导出HTML、LCov等格式的详细报告。
注意事项
- 该方案仅适用于测试环境/本地开发环境,不要在线上服务使用,插桩会明显降低服务性能
- 如果你的Node.js应用是多进程模式部署,需要额外配置nyc的多进程支持参数,避免覆盖率数据丢失
- 不要直接强杀Node.js进程,正常终止进程才能保证nyc把内存里的统计数据落盘生成完整报告
内容的提问来源于stack exchange,提问作者Elson D'Sa
相关产品推荐
相关产品推荐

