好久没写BLOG了,最近弄了一个前端单元测试加代码覆盖率测试框架,使用起来非常简单,具体使用方法和介绍如下,先上图,结果如下:
github地址:https://github.com/wf123537200/FeTestAndCov
frontEnd-test-and-cov
这是一个便捷,快速的,浏览器友好的单元测试框架。
提供功能为:
1、提供实时前端单元测试结果。
2、提供单元测试覆盖率实时显示。
为什么有这个框架?
因为作为前端一直想实现tdd开发,之前受到几种限制:
1、使用jq的年代,dom操作实在无法按照逻辑做单元测试,因为dom的结构变化太多了。
2、当使用mv*框架却又没有前端直观的前端测试时,很难做到tdd。
3、前端代码没有测试,往往无法重构和保证质量
框架基于什么技术?
1、mocha,这里使用mocha的浏览器支持
2、coverjs,使用coverjs进行代码插针,用于覆盖率统计
3、reporter,使用一位外国仁兄自己写的一个覆盖率报告插件,修复了相关BUG。
框架如何使用?
简化版本:
1、拷贝all.js和all.css到能引用的目录下,然后参照test/runner.html和test/spec.js写测试代码即可,刷新runner.html即可看到效果。
2、覆盖率统计,需要使用converjs或者使用grunt版本
grunt版本,自动插针覆盖率
1、当然是从github下载代码
2、然后将以下代码加入你的Package.json(如果你不知道这是啥,我只能说你不是做前端的。。)
具体代码如下,其实主要就是安装grunt和两个插件,如果你的代码里面已经有了,那么恭喜你,可以不加上了:
"grunt": "~0.4.0",
"grunt-coverjs": "*",
"grunt-contrib-watch": "~0.5.3",
"load-grunt-tasks": "~0.3.0",
3、执行npm代码 npm install
4、然后创建GruntFile.js(如不明白可参考,www.gruntjs.net),如已存在,可以跳过
5、向GruntFile.js里面加入如下代码(目录结构可以根据当前目录结构进行改变):
// prefix 预处理部分,由于grunt-cover有错误,所以需要使用自带文件对其进行copy
// 也可以直接将工程vendor/js/grunt-coverjs/coverjs文件拷贝到node_modules/grunt-coverjs/tasks下,覆盖同名文件
copy: {
main: {
files: [
{expand: true, flatten: true, src: ['vendor/js/grunt-coverjs/*'], dest: 'node_modules/grunt-coverjs/tasks', filter: 'isFile'}
]
}
},
// 自动做插针合并以及监控代码
cover: {
compile: {
files: [{
// 测试代码存放地址
'test/dist/test.js':
// 原工程代码存放地址
['src/*.js']
}]
}
},
watch: {
js: {
files: [
// 需要监控变化的代码
"src/*.js"
],
tasks: ['cover']
}
}
// 由于grunt-coverjs有bug,需要做修复,这里需要做个修复
grunt.registerTask('preFix', ['copy']);
// 注册grunt任务,也可以修改default名称
grunt.registerTask('default', ['cover', 'watch']);
6、如果一切都OK,在当前工程根目录下执行grunt pre(仅第一次需要执行), grunt,你就可以开始编写测试代码了。
7、测试代码样例如工程目录test/runner.html(只需要引入all.js和all.css即可),和test/spec.js,nb的你肯定一看就明白了。
8、获得结果,只要直接打开runner.html就可以看到测试结果。
分享到:
相关推荐
android超炫的图片浏览器(图 + 代码 + 注解)
于MFC的图片浏览器(源码+论文于MFC的图片浏览器(源码+论文于MFC的图片浏览器(源码+论文
模仿360浏览器官网html+css 模仿360浏览器官网html+css
覆盖代码的无缝节点和浏览器单元测试 产品特点 合并的TAP输出,代码覆盖率报告和退出状态代码的统一节点和浏览器测试。 无头Chrome驱动的浏览器测试,可提供快速,现代化的浏览器测试环境。 与捆绑程序无关的用法...
firefox浏览器驱动+selenium,firefox浏览器驱动+selenium,使用firefox浏览器自动化测试
非ie内核浏览器ACTIVEX插件+火狐谷歌支持OBJECT
单元测试,firefox浏览器+selenium录入回放测试,用jmeter进行测试Bugfree的测试
Lighthouse - IDA Pro的代码覆盖率浏览器
不错的适合练手、课程设计、毕业设计的JSP项目源码:jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT).rar不错的适合练手、课程设计、毕业设计的JSP项目源码:jsp基于Web的可维护的数据库浏览器(源代码+论文+...
## 1. 热键 之 鼠标操作 控制音量:鼠标移动到屏幕左边缘 或 任务栏上可通过...理论上兼容的浏览器有(未经过完全测试) 360 安全浏览器、QQ浏览器、、傲游浏览器、猎豹浏览器、极速浏览器。 详见 readme.md 文档。
命令行工具 可运行带覆盖率检查的 node 单元测试,不需要对测试运行进行协作 可生成 HTML 和 LCOV 报表 可作为中间件使用,在浏览器进行测试 可在命令行中以库的形式使用 基于 esprima 解析器和 escodegen 代码...
多浏览器的单元测试工具 多浏览器集成的JavaScript单元测试工县 共28页.pdf
python + selenium + unittest + PO + BeautifulReport + redis + mysql + ParamUnittest + 多线程 + 截图/日志 + 多浏览器支持 + RemoteWebDriver +文件读取 + 全参数化构建 搭建过程中非常感谢李鹏飞大侠的技术...
1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等...
Excel用例读取+多用例自动运行+多浏览器+测试结果生成+失败case截图+log日志记录,具体介绍详见https://blog.csdn.net/wei92130/article/details/113810096
全文公62页,写的很专业,包括论文全文、论文答辩PPT讲稿、源代码。 摘 要 本文主要论述了嵌入式浏览器开发所涉及到的技术,对HTML词法分析、浏览器JavaScript支持、linux和gtk编程等做了详细的分析和介绍,...
jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT)jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT)jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT)
javascript用来判断浏览器的代码,包括firefox、chrome、ie(6-9)、netscape等
浏览器请求测试插件restlet client(chrome) + http requester(火狐),用于测试restful风格的请求,测试接口数据
在 1789+ 浏览器中运行 TAP 单元测试。Airtap 是一个命令行界面,用于在浏览器中对 JavaScript 进行单元测试,使用生成 TAP 的工具,如tape. 在本地开始测试并无缝迁移到云中的浏览器以实现全面覆盖。Airtap 可同时...