Karma test
Karma是由Google团队开发的一套前端测试运行框架。它不同于测试框架(例如jasmine,mocha等),运行在这些测试框架之上。主要完成以下工作:
Karma启动一个web服务器,生成包含js源代码和js测试脚本的页面;
运行浏览器加载页面,并显示测试的结果;
如果开启检测,则当文件有修改时,执行继续执行以上过程。
搭建测试环境
npm install -g karma-cli //让全局都可以运行karma的命令行,命令行工具
npm i karma –save-dev //只在当前项目中使用karma
npm install //安装项目的依赖 package.json
1 | "devDependencies": { |
karma init //在cmd中运行该命令,构建karma.conf.js文件,运行后会询问相关问题然后生成karma.conf.js文件
1 | Which testing framework do you want to use ? |
karma.conf.js文件
1 | module.exports = function(config) { |
集成测试Travis CI
Travish CI使用
通过Travis CI测试我们可以获得一个测试通过的标志,可以将它放在github仓库readme.md文件里面
更改链接中branch的值可以获得对应分支的测试结果
测试代码覆盖率 Coverage
衡量测试脚本的质量–代码覆盖率:测试中运行到的代码占所有代码的比率
安装测试覆盖率工具
npm i –save-dev karma-coverage
修改配置文件karma.conf.js
1 | // modified |
运行karma start,会新增coverage文件夹,里面只有一个浏览器名的文件夹,里面是根据preprocessors添加的路径生成对应的文件夹和其他文件,
其他文件里面有index.html文件,是整个测试的测试报告,文件夹里是每个文件的覆盖测试结果和代码具体的覆盖情况
注意:如果不想将测试结果上传github,记得更改.gitignore文件,将coverage文件夹忽略掉
获取覆盖率标志
github 仓库经常会看到这个标志
就是说项目的测试覆盖率是91%,要获取这个标志我们需要将测试覆盖率放到Coveralls上
安装 coveralls方便我们在Travis CI上测试完之后将结果上传
npm i coveralls –save-dev
更改karma.conf.js
coverageReporter: {
type : ‘lcov’, //将html改为lcov
dir : ‘coverage/‘
},
接下来操作步骤可以有两种
方法一:
仅更改 package.json文件,不保留测试命令karma start
更改package.json的scripts
1 | "scripts": { |
方法二:
更改package.json文件,保留测试命令karma start
1 | "scripts": { |
也要更改.travis.yml文件,添加以下语句
1 | after_success: |
然后push代码,等Travi CI 完成测试后,我们可以在Coveralls上获取标志,
在总的测试结果那个页面不是具体某次提交的页面获取
点击EMBED可以获取不同格式的标志代码,
复制粘贴MARKDOWN 格式可以放在readme.md文件中直接使用