博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用CI、headless Browser、mocha对前端代码进行测试
阅读量:6803 次
发布时间:2019-06-26

本文共 1830 字,大约阅读时间需要 6 分钟。

什么是CI

CI 提供的是持续集成服务(Continuous Integration,简称 CI)。持续集成指的是只要代码有变更,就自动运行构建和测试,反馈运行结果。

什么是headless Browser

headless Browser 中文翻译,无头浏览器。是一种没有界面的浏览器,可以在命令窗口中被运行。

什么是mocha

☕️ Simple, flexible, fun JavaScript test framework for Node.js & The Browser ☕️
是一种可以运行在浏览器以及nodejs 环境的前端测试框架

为什么要编写测试代码

对于迭代需求,我们人类编写的代码,只能保证在当前事件节点的正确性,随着事件的推移,代码的变动,以及人为关系。我们无法保证之前的逻辑完全符合曾经的要求,这时候我们就需要编写测试代码对功能点进行测试。

测试不是一次性的,而是持续的永久的

对于开源框架而言,测试的覆盖面积更代表了框架的可靠性;也能使用自动化测试更好的约束贡献者提交的PR

开始使用mocha 对代码进行测试

首先呢,我要开始编写一个add.js含有一个方法add,这个方法我希望获取 a+b 的值是一个Number

function return(a,b){    reutnr a+b}

好的现在我可以对这个方法进行测试了

增加一个用于测试index.html

    Mocha Test    

编写 test.js

chai.expect是一个chai.js的断言方法,如果出现问题,则会抛出一个异常 文档地址

describe 是mocha的测试取款,每一个it都会执行一个测试用例

var expect = chai.expect;describe('ADD.JS TEST', function() {  it('add(1,1)', function() {    expect(add(1,1)).to.equal(2)  });})

现在我们就可以直接运行index.html查看效果了,当然可以开启一个http服务器查看,可以使用http-server快速开启一个http服务。

在浏览器运行会出现以下提示,表示测试通过

a428d4844ba06700ca7cf614e342ff3d.png

如果想要添加更多测试用例可以继续添加更多的测试代码。

接下来

很显然,我们在持续编写add.js的时候,并不愿意每次都打开网页去运行并查看代码测试情况。

这时候,headless要开始大展拳脚了。

使用mocha-chrome 直接在命令行运行mocha测试用例。mocha-chrome是一个可以在命令行对mocha页面进行测试的框架。它可以将测试结果展现在控制台。

npm init ...npm i mocha-chrome --save-dev

修改package.json增加

"scripts":{    "test": "mocha-chrome ./test-some/index.html"  }

调用命令

npm test

这时候,正确的提示会出现在控制台中

https://i.h2.pdim.gs/1aa6afee8284df9bbde40f3280c960bf.png

项目地址

这时候,当我们测试项目的时候就不必须打开浏览器去检查代码是否通过验证了,只要输入npm test就可以在控制台看到效果,是不是变得很轻松了呢。

继续

当我们测试用例过长,占用时间过多,或者需要其他前置操作,或者需要测试多个版本,多个系统的兼容性。我们应该如何做呢。很明显,要使用CI

所以,我们并不想每次在本地进行测试,这里我们将要使用travis ci

关于travos ci我们可以阅读

在项目根目录创建.travis.yml

内容如下。

sudo: requiredlanguage: node_jsnode_js:  - "8"  - "9"

当你在travos ci开启了repository you want to build按钮的时候。每次项目的提交就会触发ci的构建。

而且你可以生成github小图标放在项目的readme中,比如说这个 是不是很酷。

点击这个小徽章,你就可以查看我的项目在ci构建的过程。

查看travis ci 的文档,去获取更多的资料

结束

基本的测试方法你已经掌握了,现在可以去了解更多了,如果有问题,可以查看我的项目进行对比

更多资源

转载地址:http://gynwl.baihongyu.com/

你可能感兴趣的文章
VSTO 向office文档中插入内容
查看>>
【百度地图API】关于如何进行城市切换的三种方式
查看>>
How to provide highlighting with Spring data elasticsearch
查看>>
MongoDB 游标
查看>>
即将搭载人工智能芯片的华为Mate10,究竟会为业界带来什么?
查看>>
Android实现登录小demo
查看>>
AgentWeb是基于Android WebView一个功能完善小型浏览器库
查看>>
开放数据中心联盟推8个云计算应用模型
查看>>
学习数据分析的“里程碑”是什么?
查看>>
数据科学与DevOps之间的差距还有救吗?
查看>>
信息化一周回顾:金融业大数据十大趋势
查看>>
Http、TCP/IP协议与Socket之间的区别
查看>>
文思海辉:智慧数据避免企业成为大数据时代落伍者
查看>>
迅雷发布“星域CDN” 做条颠覆市场的鲶鱼
查看>>
英国《数字经济法案》
查看>>
Asp.net与Flex交互测试记录
查看>>
运维前线:一线运维专家的运维方法、技巧与实践1.8 运维自动化依赖的团队模型...
查看>>
《树莓派渗透测试实战》——第1章 树莓派和Kali Linux基础知识
查看>>
《圣殿祭司的ASP.NET4.0专家技术手册》----1-7 HTML5与CSS3的支持
查看>>
数据结构之链表
查看>>