位置: 编程技术 - 正文

JavaScript测试工具之Karma-Jasmine的安装和使用详解(js代码测试工具)

编辑:rootadmin

推荐整理分享JavaScript测试工具之Karma-Jasmine的安装和使用详解(js代码测试工具),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript test,js中测试代码编写正确的方法,js中测试代码编写正确的方法,js测试工具,如何进行js 的测试,js api测试,js api测试,javascript test,内容如对您有帮助,希望把文章链接给更多的朋友!

1.Karma介绍

Karma是Testacular的新名字,在年google开源了Testacular,年Testacular改名为Karma。Karma是一个让人感到非常神秘的名字,表示佛教中的缘分,因果报应,比Cassandra这种名字更让人猜不透!

Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。

2.Jasmine介绍

Jasmine (茉莉)是一款 JavaScript BDD(行为驱动开发)测试框架,它不依赖于其他任何 JavaScript 组件。它有干净清晰的语法,让您可以很简单的写出测试代码。对基于 JavaScript 的开发来说,它是一款不错的测试框架选择。

比较流行的有Qunit和Jasmine,如果你想更详细了解二者的区别,请狠狠的点击Javascript单元测试框架Qunit和Jasmine的比较。

积木网友情提醒大家需要注意点:本文中出现的资料链接、karma的插件安装等,均可能需要翻$墙后才能正确执行。

步骤一:安装Node.JS(版本:v0..4, windows-)

Karma是运行在Node.js之上的,因此我们首先要安装Node.js。到 下载你系统所需的NodeJS版本,我下载的是windows-位的msi版。

下载之后,双击 node-v0..4-x.msi 运行并安装,这个就不赘述了, 不断下一步即可, 当然最好将目录改一下。

图1(选择安装内容,默认即可):

步骤二:安装Karma

运行Node.js的命令行程序:Node.js command prompt:

图2(处于“开始->所有程序->Node.js”中):

图3(我们将安装到E:Karma路径下):

输入命令安装Karma:

图4(Karma安装完毕后):

步骤三:安装karma-jasmine/karma-chrome-launcher插件

继续输入npm命令安装karma-jasmine、karma-chrome-launcher插件:

图5(karma-jasmine、karma-chrome-launcher安装完毕之后):

步骤四:安装karma-cli

karma-cli用来简化karma的调用,安装命令如下,其中-g表示全局参数,这样今后可以非常方便的使用karma了:

图6(karma-cli安装完毕之后):

Karma-Jasmine安装完毕:

图7(安装完毕后,在E:Karma文件夹下会有一个node_modules目录,里面包含刚才安装的karma、karma-jasmine、karma-chrome-launcher目录,当然还包含了jasmine-core目录):

开启Karma:

输入命令:

图8(运行后如图所示出现了一行INFO信息,并没有其他提示和动作,因为此时我们没有配置karma的启动参数。后面会加入karma.conf.js,这样karma就会自动启动浏览器并执行测试用例了):

图9(手动打开Chrome,输入localhost:,如果看到这个页面,证明已经安装成功):

Karma+Jasmine配置:

执行命令init命令进行配置:

JavaScript测试工具之Karma-Jasmine的安装和使用详解(js代码测试工具)

karma init

图(所有默认配置问题):

说明:

1. 测试框架:我们当然选jasmine

2. 是否添加Require.js插件

3. 选择浏览器: 我们选Chrome

4. 测试文件路径设置,文件可以使用通配符匹配,比如*.js匹配指定目录下所有的js文件(实际操作中发现该路径是karma.conf.js文件的相对路径,详见下面我给出的实际测试配置及说明)

5. 在测试文件路径下,需要排除的文件

6. 是否允许Karma监测文件,yes表示当测试路径下的文件变化时,Karma会自动测试

我在虚拟机上测试的例子:

图(TestFiles和NodeJS处于E盘根目录下,karma.conf.js处于文件夹NodeJS的根目录下):

以下是karma.conf.js的完整内容:

说明:

若所有测试文件均处于同一个目录下,我们可以设置basePath(也是相对于karma.conf.js文件的相对路径),然后指定files,此时files则为basePath目录下的文件相对路径;

当然你也可以不设置basePath,直接使用相对于karma.conf.js文件的文件相对路径,如本例中,我们若保持basePath默认为空,则files配置应为:

启动Karma:

karma start karma.conf.js

由于这次加上了配置文件karma.conf.js,因此Karma会按照配置文件中指定的参数执行操作了,由于我们配置的是在Chrome中测试,因此Karma会自动启动Chrome实例,并运行测试用例:

图(左侧的Chrome是Karma自动启动的,右侧的Node.js command prompt窗口中,最后一行显示了执行结果):

图(如果我们点击图中的debug按钮,进入debug.html并按F打开开发者工具,选择Console窗口,我们将能看到jasmine的执行日志):

若此时,我们将jasmineTest.js中对于调用TT方法的期望值改为"abcd"(实际为"abc"):

由于我们在karma.conf.js中设置了autoWatch为true:

autoWatch: true

Karma将自动执行测试用例,由于本例测试用例未通过,因此在屏幕上打印出了错误信息,Chrome的Console窗口中的日志信息需要刷新debug.html后显示。

图(Karma自动检测到文件变化并自动重新执行了测试用例):

代码覆盖率:

如果你还想查看测试的代码覆盖率,我们可以安装karma-coverage插件,安装命令为:

图(安装karma-coverage的过程):

修改karma.conf.js,增加覆盖率的配置:

图(主要是变动了以下三个配置节点,其他的配置内容不变):

变动如下:

在reporters中增加coverage preprocessors中指定js文件

添加coverageReporter节点,将覆盖率报告类型type设置为html,输入目录dir指定到你希望的目录中

此时完整的karma.conf.js如下:

执行命令:

图(执行命令后,在配置文件coverageReporter节点中指定的dir中,我们将找到生成的覆盖率报告,karma-coverage还生成了一层子文件夹,对应于执行测试的浏览器+版本号+操作系统版本):

JS使用post提交的两种方式 本文实例讲述了JS使用post提交的两种方式。分享给大家供大家参考,具体如下:第一种提交post的方式是传统方式,判断浏览器进行post请求。SCRIPTstype=tex

解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法 最近在做博客的目录功能,发现一个在现代浏览器间的一个bug,或是称之为差异,即页面滚动值(scrollTop)的获取与设定。在此之前先说一下关于页面元素

继续学习javascript闭包 一、什么是闭包?官方的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部

标签: js代码测试工具

本文链接地址:https://www.jiuchutong.com/biancheng/387090.html 转载请保留说明!

上一篇:五种js判断是否为整数类型方式(js判断怎么写)

下一篇:JS使用post提交的两种方式(javascript post语法)

  • 个人将租用的商铺怎么办
  • 季度报税是哪几个月几号申报
  • 纳税信用等级是专管员评的吗
  • 商业折扣和现金折扣的入账金额
  • 公积金贷款金额少怎么办
  • 劳务公司涉及的税收
  • 2019年一季度季报怎样填写
  • 房屋折旧计提完成价格还能调整吗
  • 加计抵减其他收益汇算清缴填哪里
  • 资产负债表试算平衡表是什么
  • 可转换债券转股时股价高于转换价格
  • 政府扶贫支出
  • 去年房租忘记摊销怎么办
  • 报关单不存在
  • 企业无形资产摊销表述不正确
  • 5%征收率的适用范围
  • 印花税法律制度规定不征收印花税的是什么
  • 免税销售额怎么算出来的
  • 国税发2005 9号 税屋
  • 增值税报表附表三如何填写
  • 退以前年度所得税会计分录
  • 一般纳税人所得税优惠政策
  • 小规模银行存款多笔小金额财务费用可以合并记账吗?
  • 总包劳务工资发什么科目
  • 定期定额怎么报税
  • 金税盘电子发票怎么开
  • 开发支出会计科目
  • 营改增之前的增值税
  • 食堂买菜怎么算
  • 社保公积金代缴
  • Win11如何解决界面不断刷新 Win11界面不断刷新解决方法
  • php中数组的常用函数及用法
  • 增值税中进项税额比对异常能作废申报吗
  • 筹建期间费用计什么科目
  • le启动exe是什么意思
  • 存货周转率公式怎么算
  • 什么是坏账,坏账的核算方法有哪些
  • 国际税收协定有哪些主要内容
  • 小规模纳税人交增值税吗
  • php页面刷新代码
  • php时间戳转换成时间
  • 出口抵减内销产品应纳税额怎么结转
  • 汽车进项税什么时候抵扣
  • 自然人独资可以变更为有限责任公司
  • 销售免税农产品如何开票
  • 预缴增值税所需成本
  • mysql百万级数据分页查询优化
  • 失控票要在抵扣当月转出吗
  • 增值税发票没有抵扣联能作废吗
  • 机动车统一发票怎么开
  • 先付款后收到发票
  • 公司注销时应付账款怎么处理
  • 地方水利建设基金怎么计算
  • 公司工会经费怎么花不违规
  • 低值易耗品怎么做账务处理
  • 建账的过程包括哪些内容
  • 出纳账户怎么设置
  • 什么是格式良好的xml文档
  • SQL中实现SPLIT函数几种方法总结(必看篇)
  • win7系统宽带连接
  • windows7如何设置电脑休眠时间
  • xp恢复回收站删除文件
  • linux shell find
  • windows7怎么禁用网络
  • 如何删除win7系统自带游戏软件
  • win10交接wifi
  • js浅拷贝的方法
  • node.js适用哪些场景
  • vue父子组件传值props
  • @jsondeserialize
  • javascript要学哪些
  • 增值税纳税申报操作流程
  • 甘肃省政府非税收入电子发票在哪里打印
  • 领导班子和领导干部的区别
  • 江西省联考成绩查询系统入口官网
  • 涉嫌虚开增值税专用发票罪
  • 重庆车辆检测费多少钱
  • 地税局是政府部门吗
  • 公司购买车辆是什么费用
  • 福建省运会2022年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设