-
Notifications
You must be signed in to change notification settings - Fork 48
Karma+Jasmine+istanbul+webpack自动化单元测试 #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
安装Jasmine并且还有安装项目中使用
在安装的过程我们可以去看看jasmine文档 jasmine 5个核心
因为我们的测试示例写的是对的,所以没有任何错误提示。 怎么看运行结果,karma会自动打开一个谷歌浏览器 你会发现没有任何提示,因为我们没有安装一些东西,后面来说。现在只能去看karma打开的谷歌浏览器的控制台了。 有一个错误提示,说预期2,和匹配结果3不对应。ok没毛病。 简陋版测试已经跑起来了,接下来我们要写自己代码 |
安装Webpack
安装需要时间,这个我们去写个简单的例子,一个简单的add函数。 这里用的es6,模块导出,浏览器还不认识,需要用到babel转换。
这时候我们代码还是那样,需要去配置 webpack配置就不多做介绍,这里不是webpack教程,也不是一两句可以说完,看教程。 因为这里配置比较简单,就直接放在里面。如果复杂就需要单独抽出去做一个配置文件。
运行一下 测试add函数
出问题了,现在浏览器都还不识别 我们需要配置preprocessors 完美运行 接着继续,我们还需要生成源文件映射的map文件,
|
安装Istanbul还需要安装Istanbul相关的依赖
先给 在写上 添加完成以后,重新运行
运行以后,就会生成 命令行显示 文件夹里面显示 怎么测覆盖率(code coverage)它有四个测量维度。
我们将这个函数变得复杂点,如果不写num2,就默认是0。
测试结果分析: 我们再来个复杂的栗子:
测试结果分析: 全部覆盖,ok完工。demo |
跟着一路走下来,run的很好,大神有没有计划写一下有关 e2e测试的呢? 跟 react / vue 搭配,会更好,或者说大神有没有相关的博客推荐? |
Karma+Jasmine+istanbul+webpack自动化单元测试
前言
一直用别人配置好的东西,经常看别人写教程来写简单的单元测试,闲来无事自己也来撸个配置玩玩。说干就干,从开始到运行成功差不多5个小时。遇到各种问题,主要是各种模块的配置版本问题。
简单介绍一下要用到东西是什么
Karma的介绍
Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma。Karma是一个让人感到非常神秘的名字,表示佛教中的缘分,因果报应,比Cassandra这种名字更让人猜不透!
Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。
Jasmine的介绍
Jasmine是单元测试框架,我将用Karma让Jasmine测试自动化完成。jasmine提出行为驱动【BDD(Behavior Driven Development)】,测试先行理念,Jasmine的官网
istanbul的介绍
istanbul是一个单元测试代码覆盖率检查工具,可以很直观地告诉我们,单元测试对代码的控制程度。(ps:这个玩意浪费我好久时间,后面详细说怎么配置)
webpack的介绍
webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成少量的 bundle - 通常只有一个,由浏览器加载。(引用webpack中文网介绍)
构建Test工程,开始新生上路
创建一个文件test-demo
进入test-demo,在当前文件夹里打开命令行,输入

npm init -y
;自动生成package.json文件。

The text was updated successfully, but these errors were encountered: