| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 关于 nodejs 覆盖率的探索 -> 正文阅读 |
|
[开发测试]关于 nodejs 覆盖率的探索 |
知识储备虽然说没有做过这块的覆盖率研究,但是对于针对nodejs这块的覆盖率工具之前是有做过一定的了解的,主要是在 nyc 以及 istanbul-middleware (以下简称IM)。 关于两者的一些说明可以去看下这两篇文章,里面讲了挺多内容的 探索istanbul/nyc代码覆盖工具的原理 React Native 代码覆盖率获取探索 (二) nyc的初步尝试由于nodejs这块很少会用到babel编译这种方式,所以我们就放弃了之前 聊聊前端代码覆盖率 (长文慎入) 介绍到的 babel-plugin-istanbul。 而是直接采用nyc运行前插桩的方式。 这里可以直接查看下这个栗子 nyc-expresss-coverage-demo 其实就是通过
变为了
如果了解一定的逻辑的话就会发现其实下来node服务执行以后,就可以通过 IM的运行中插桩的尝试在上述的nyc的怎么过程中我们发现整体的过程很不方便,首先是是编译前插桩这个动作,再来就是覆盖率需要自己采集以及报告生成。 所以我们这个时候可以考虑下IM了。 IM 提供了以下的功能
这里就不举例说明怎么使用IM的了,因为他的说明文档已经很详细了,关键就是使用 不过这里有一个需要注意的地方, IM hook的是 另外在使用IM的时候还发现另外的一个问题, 那就是IM针对es6的插桩是存在问题的,类似于这个issue Updating Instrumentor (so that it supports ES6) ,其实只要更换instrument的库即可,不过作者已经不维护了,所以代码也一直未合并。 nyc运行中插桩经过上述的一些尝试, 又重新把目光放回了nyc上,既然istanbul已经不维护,而转到了nyc上,nyc这块肯定不单单只是运行前插桩这种方式的。所以尝试又重新在网上搜索了下,结果真的有了新的发现。 nodejs 测试覆盖度工具nyc(Istanbul)简介 在这篇文章中作者执行nyc的方式并不是与mocha等测试框架结合使用的。而是直接在启动服务命令增加了nyc。 带着这个希望,重新尝试了下,发现在启动命令前 加上nyc执行以后,等到服务停止执行后,就可以在 所以我们需要方便些的方式: 就是支持实时动态生成覆盖率报告的, 所以就有了 nodejs-coverage-lib 这个库, 其实这个库的功能还是相当的简单的,就是通过express启动了一个服务,提供了一个报告下载的接口, 而其中的过程则是获取到全局的变量 总结以上就是关于nodejs这块覆盖率的一些调研以及总结。
nodejs这块的覆盖率这块相对于前端来说还是会方便很多,因为主要还是覆盖率的数据就是在服务端处,免去了很多在用户端采集的过程了。 PS: 这里的覆盖率验证只是找了两个项目做了尝试,并不一定适用所有的项目(比如说typescript的项目)。 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 20:38:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |