现在富客户端的东西越来越流行,所以测试也越来越受到重视,我们的测试也从alert时代转变到传统的测试时代,经过比较发现可以用Karma(基于Nodejs)的Karma coverage做覆盖测试,同时,也可以集成jasmine(Karma默认方式)或qunit做测试,由于jasmine只能在NodeJs后台看输出,所以qunit还是不错的。
系统环境:
win7 64bit
1、安装Nodejs官网下载最新版本,安装完成之后再cmd窗口中执行 node -v,可以看到版本信息。
2、执行 npm -v 查看npm是否已经安装以及版本信息
3、安装Karma:任意目录下执行命令
npm install -g karma
完成后可以看到
启动Karma测试安装是否成功,命令 karma start
注:默认会打开chorme浏览器,如果没有找到安装路径就会报错。
在浏览器中输入:http://localhost:9876查看结果
4、初始化karma配置文件karma.conf.js 命令 karma init
也可以直接修改karma.conf.js
5、安装集成qunit
5.1 Karma 集成,命令 npm install karma-qunit
5.2下载Qunit js和css。
6、自动化单元测试
6.1 创建文件(我们需要测试的源文件);
用于实现某种业务逻辑的文件,就是我们平时写的js脚本,有一个需求,输入两个参数,如果第一个参数比第二个大就返回第一个减第二个,否则返回0。
function reverse(a,b){ if(a>b){ return a-b; }else{ return 0; } }
6.2 创建测试文件(编写测试脚本的文件);
test('减法测试', function() { ok(1==reverse(2,1),"ok"); ok(0==reverse(2,2),"ok"); ok(0==reverse(-1,2),"ok"); });
6.3 创建测试html
<!DOCTYPE html> <html> <link rel="stylesheet" href="jscss/qunit-1.12.0.css"> <script type="text/javascript" src="jscss/qunit-1.12.0.js"></script> <script type="text/javascript" src="src.js"></script> <script type="text/javascript" src="test.js"></script> <body> <h1 id="qunit-header">减法</h1> <h2 id="qunit-banner"></h2> <div id="qunit-testrunner-toolbar"></div> <h2 id="qunit-userAgent"></h2> <ol id="qunit-tests"></ol> </body> </html>
运行测试html
6.3 修改karma.conf.js配置文件。
module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine'], files: ['*.js'], exclude: ['karma.conf.js'], reporters: ['progress'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], captureTimeout: 60000, singleRun: false }); };
然后启动Kamar
6.4、修改test.js或者src.js
这是成功状态
6.5、修改一个失败状态
ok(4==reverse(-1,2),"ok");
结果为:
karma后台提示为
7、集成覆盖测试
7.1输入命令
npm install karma-coverage
7.2 修改配置文件 karma.conf.js
module.exports = function(config) { config.set({ basePath: '', frameworks: ['qunit'], files: ['*.js'], exclude: ['karma.conf.js'], reporters: ['progress','coverage'], preprocessors:{'src.js': 'coverage'}, coverageReporter:{ type : 'html', dir : 'coverage/' }, port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], captureTimeout: 60000, singleRun: false }); };
7.3 启动karm,在工程目录下面找到index.html文件,coverage/chrome/index.html,我们看到代码测试覆盖绿报告
点击src.js
覆盖率是100%,说明我们src.js的功能做了完整的测试,接下来我们修改if else分支
function reverse(a,b){ if(typeof(a)!=="number"||typeof(b)!=="number") return -1; if(a>b){ return a-b; }else{ return 0; } }
代码覆盖率为:
具体没有测到的部分:
相关推荐
安装最简单的方法是通过运行将karma-qunit保留在package.json作为devDependency npm install karma-qunit --save-dev配置在您的karma.conf.js文件的frameworks数组中添加qunit 。 然后,在plugins数组中,添加karma-...
通过以上步骤,我们就能构建一个基于Karma和Webpack的Vue单元测试框架,有效提升项目质量和可维护性。在实际开发中,持续集成和持续部署(CI/CD)流程也可以与这个测试框架结合,确保每次代码提交都会触发自动化测试,...
【标题】"karma+karma-jasmine+karma-requirejs+requirejs离线包" 提供了一种在没有网络连接的情况下安装和使用这些关键工具的方法。这个压缩包包含的组件对于JavaScript开发人员进行单元测试至关重要。 Karma是...
#Karma Qunit 示例 使用 Karma 和 Qunit 的示例项目。 ##安装 您需要安装 NodeJs,然后安装 Karma。 首先,全局安装 Karma npm install -g karma 。 然后全局安装 Karma cli npm install -g karma-cli 。 准备...
karma-webpack-example, Karma + web pack + mocha + + 伊斯坦布尔 karma-webpack-exampleKarma + web pack + mocha + + 伊斯坦布尔##Installationnpm install运行 npm run test 删除
【karma-qunit-fixture】是一个专门为JavaScript测试框架Karma和QUnit设计的插件,用于在QUnit测试中管理 fixtures(固定数据或环境)。在软件开发中,测试是确保代码质量的重要环节,特别是单元测试,它允许开发者...
这个项目"**Mocha-Webpack-Karma**"提供了一个很好的示例,教你如何将React框架与Mocha测试库、Karma测试运行器以及Webpack打包工具结合起来进行单元测试。下面,我们将深入探讨这些工具以及它们在测试中的作用。 1...
业力webpack的例子 业力+ Webpack +摩卡+柴+伊斯坦布尔 提示:该示例仍然显示了一种有效的方法,...> karma-webpack-example@1.0.0 test /Users/d060690/karma-webpack-example > node ./node_modules/karma/bin/karm
$ npm install --save-dev karma karma-jasmine karma-chrome-launcher开始业力 $ karma start笔记生成 karma.conf.js 文件 $ karma init - 允许您为单元测试注入和模拟 Angular 服务describe( title , function ) -...
总结来说,Karma Rollup Plugin 是前端开发中的一个重要工具,它让开发者能够在Karma测试环境中充分利用Rollup的代码优化能力,提高测试效率和质量。对于大型和复杂的JavaScript项目,这种集成可以带来显著的性能...
Komet-Karma作为专门为Komet项目设计的前端测试解决方案,极大地简化了测试环境的搭建和维护。它结合了Karma的强大功能,提供了自动化测试、丰富的插件支持以及易于扩展的架构。对于任何使用Komet的前端开发者来说,...
基于 Mocha、Karma、Chai、Sinon 和 JS-Fixtures 的单元测试脚手架。 安装 从安装最新版本的节点 然后导航到克隆该项目的目录并安装所需的依赖项 $ npm install 运行单元测试 在开发过程中启动监视任务以 lint 和...
使用 angular、requirejs、couchpotato(用于延迟加载)进行项目设置并使用 karma + jasmine 进行测试。 要运行该项目,请进入 grunt 文件夹并键入: 咕噜咕噜的业力 您不需要下载任何依赖项,因为节点模块已在此...
**前端开源库-karma-fixture** 在Web开发领域,测试是确保代码质量的重要环节,而前端测试更是不可或缺的一部分。...如果你正在使用Karma进行前端测试,那么`karma-fixture`绝对值得添加到你的测试工具箱中。
4. **易于测试**:AngularJS 提供了 ngMock 和 Karma 等工具进行单元测试和端到端测试,而 Bootstrap 的组件化设计也方便进行 UI 测试。 在名为 "CientTest" 的压缩包文件中,可能包含了使用 AngularJS 和 ...
"karma-beep-reporter"就是这样一个专门为前端测试设计的开源库,它是一个Karma的插件,主要作用是在测试过程中通过声音反馈测试结果,特别是当测试失败时,它会发出嘟嘟声,帮助开发者迅速察觉到问题。 Karma是...