• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Karma、Mocha和Chai自动化测试解决方案

武飞扬头像
30岁老阿姨
帮助1

一、背景

随着平台功能越来越多,接口及关联数据复杂,传统功能测试无法满足覆盖测试要求,顾搭建针对TypeScript的自动化单元测试。

该测试体系具有以下优点:

  • 缩短测试时间:通过自动化测试体系,可以一键执行测试用例,生成测试报告以及代码覆盖率报告。开发人员可根据报告分析出问题所在,以及未测试的代码。
  • 更高的投资回报率:自动化测试比传统功能测试速度更快,且测试用例可重用,避免功能开发后“关联功能”的重复测试。减少了测试以及开发时间,对快速相应要求极高的市场极为有益。
  • 早期缺陷检测:编写白盒测试用例阶段,相当于做了一次代码走查,可分析出代码存在的浅显逻辑错误;白盒测试执行阶段,相当于将所有功能执行一至多遍,将代码逻辑缺陷暴露在系统测试之前。
  • 更高的测试覆盖率:自动化单元测试的测试范围更全面,相较于传统测试方式,可覆盖更全面的代码逻辑以及功能逻辑,从而降低发布后的故障概率。

二、技术栈概念


Karma(卡玛)是一个基于node.js的JavaScript测试执行过程管理工具,它可以拉起所有主流浏览器,加载测试脚本,然后运行测试用例,完成后关闭浏览器。

Mocha(摩卡)是一个单元测试测试框架/库,它可以用来写测试用例。

Chai 是用于节点和浏览器的BDD / TDD断言库,可以与任何javascript测试框架完美地配对,支持BDD风格的expect、should和TDD风格的assert。

我们主要就是用Karma与Mocha来实现自动化测试。

三、技术栈的安装及使用

Node.js

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,让JavaScript运行在服务端的开发平台。是部署自动化单元测试体系不可或缺的环境。

3.1下载NodeJS

NodeJS安装包及源码下载地址为:

NodeJS

根据不同的系统选择你需要的安装包。

3.2Wondows上安装NodeJS

  1. 双击NodeJs安装文件,将出现如下界面:

学新通

 2、点击Next按钮,将出现如下界面,并勾选接受协议选项,点击Next按钮:学新通

3、NodeJs默认安装目录为"C:\Program Files\nodejs\",如需更改安装目录,请点击Change按钮,更改完毕后点击Next按钮

学新通

4、点击属性图标来选择需要的安装模式,然后点击Next按钮,如下图:

学新通

5、点击Install开始安装NodeJS

学新通

6、安装完成后可以同命令行来检测是否安装成功以及环境变量是否配置成功:

  • 同时按住Win R键打开运行面板
  • 在运行面板输入框中输入cmd并点击确定
  • 在命令行界面输入path并按回车键,查看结果中是否含有你的NodeJs安装目录
  • 在命令行界面输入node --version并按回车键,可以查看NodeJs版本

3.3完成NodeJS环境搭建

至此就完成了NodeJS环境的搭建了,后续就可以进行接下来的步骤了,例如:项目的创建、搭建Mocha测试框架等。

四、Mocha

mocha是一个功能丰富的JavaScript测试框架,运行在NodeJs和浏览器中。Mocha测试连续运行,允许灵活和准确的报告,同时将未补货的异常映射到正确的测试用例。

4.1安装Mocha

使用NPM全局安装也可以作为项目的依赖进行安装

  1.  
    //全局安装
  2.  
     
  3.  
    $ npm install --global mocha
  4.  
     
  5.  
    //作为项目依赖进行安装
  6.  
     
  7.  
    $ npm install --save-dev mocha

或直接在项目配置文件package.json中添加相应库的依赖,例如:

  1.  
    "@types/mocha": "^9.1.0",
  2.  
     
  3.  
    "mocha": "^9.2.2"

4.2使用Mocha

Mocha中的BBD接口提供了describe、context,it,specify,before,after,beforeEach,afterEach接口。

context接口只是一个别名describe,行为方式相同;它只是提供了一重让测试更容易阅读和组织的方法;同样,specify是别名it。

describe接口是一个描述,用来定义一个测试块,该测试块有固定的生命周期:before、after、beforeEach、afterEach以及测试用例it。

用法示例:

  1.  
    describe('test', function() {
  2.  
     
  3.  
    // 在本测试块的所有测试用例之前执行且仅执行一次
  4.  
     
  5.  
    before(function() {
  6.  
     
  7.  
    });
  8.  
     
  9.  
    // 在本测试块的所有测试用例之后执行且仅执行一次
  10.  
     
  11.  
    after(function() {
  12.  
     
  13.  
    });
  14.  
     
  15.  
    // 在测试块的每个测试用例之前执行(有几个测试用例it,就执行几次)
  16.  
     
  17.  
    beforeEach(function() {1
  18.  
     
  19.  
    });
  20.  
     
  21.  
    // 在测试块的每个测试用例之后执行(同上)
  22.  
     
  23.  
    afterEach(function() {17
  24.  
     
  25.  
    });
  26.  
     
  27.  
    // 测试用例
  28.  
     
  29.  
    it('test item1', function () {
  30.  
     
  31.  
    })
  32.  
     
  33.  
    });
学新通

4.3断言

mocha允许你是用任意你喜欢的断言库,若不引入其他断言库则会使用NodeJs中内置断言模块作为断言。如果能够抛出一个错误,它就能够运行。本测试体系使用chai作为

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkgkig
系列文章
更多 icon
同类精品
更多 icon
继续加载