karma+webpack搭建vue单元测试环境

发表于:2017-9-26 11:51

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:快科技

  编写第一个测试
  编写一个测试用例来运行,我们先测试下app.vue文件加载后title值是否符合预期。新建test文件夹,test文件夹下建立unit文件夹,unit文件夹下建立app.spec.js文件。目录结构如下:
  目录
  app.spec.js内容如下
  test/unit/app.spec.js
  在当前目录打开命令行,输入karma start,这时karma会启动一个服务来监听测试。
  karma start
  不要关闭当前命令窗口,再打开一个命令窗口,输入karma run,这时我们会看到测试通过的提示。
  karma run
  查看测试覆盖率
  单元测试属于白盒测试,测试覆盖率也是测试指标之一。karma提供了karma-coverage来查看测试覆盖率。
  安装karma-coverage:npm install karma-coverage --save-dev
  配置覆盖率,在预处理的文件上加coverage
  karma.conf.js
  在报告中使用coverage
  karma.conf.js
  配置覆盖率报告的查看方式
  karma.conf.js
  再次执行karma start和karma run,我们能看到生成了覆盖率查看文件夹
  目录
  在浏览器中打开上图中的index.html我们能看到覆盖率已经生成。
  index.html
  点击「unit/」我们看到app.spec.js代码有3036行,测试覆盖率是打包之后文件的覆盖率,
  unit/index.html
  点开文件,果然是打包之后的代码。这个覆盖率显然不是我们想要测试的源文件的覆盖率。
  unit/app.spec.js
  怎么办呢?想想开发时浏览器打开的也是编译后的文件,我们怎么定位源码呢?
  Bingo!?sourcemap。
  当然这里只用sourcemap是不够的,测试覆盖率神器isparta闪亮登场。
  安装:npm install --save-dev isparta isparta-loader
  修改vue的js loader
  karma.conf.js
  再次执行karma start和karma run,我们能看到测试覆盖率文件已经能找到源文件了,并且覆盖率只有js代码,并不包括无关的template和style,简直太好用了有没有。
  index.html
  src/index.html
  src/app.vue.html
  等等,怎么还有那个3000多行的文件,这个覆盖率没有用,能去掉吗?答案是肯定的。我们只需要把karma.conf.js中preprocessors的coverage去掉即可。
  karma.conf.js
  再次执行karma start和karma run,我们能看到覆盖率的文件变成这样了。
  index.html
  最后我们可以把karma的watch模式打开,之后只需要运行karma start就能监控文件变动并自动执行测试了。
  karma.conf.js
  至此karma+webpack搭建的vue单元测试环境就已经ready了。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号