Vue 中使用 Karma 做自动化测试

简介: Vue 中使用 Karma 做自动化测试

1、相关工具介绍

chai.js 断言库 :这个玩意儿就是对你写的代码进行一个单元测试,能够使开发人员尽早的发现代码中的 bug。


Karma([ˈkɑrmə] 卡玛):一个测试运行器的工具,它可以呼起浏览器,加载测试脚本,然后运行测试用例。


Mocha([ˈmoʊkə] 摩卡):这也是一个单元测试框架/库,它可以用来写测试用例,监测代码中可能存在的问题。


Sinon(西农):一个 spy / stub / mock 库,用以辅助测试,比如测试 click 函数是否能被正常调用等。


个人认为测试在软件开发的过程中还是很重要的一个环节的,一般开发人员在测试的过程中会使用到以上几个库或工具,其详细的使用方法可以到各自的官网或 github 上查看,这里就不赘述了,主要说一下在 Vue 项目中如何使用 Karma 做自动化测试,进而提高测试效率。


在 Vue 项目中的测试用例一般写在根目录的 test 文件夹内,在写测试用例之前你需要安装和引入相关的单元测试框架和库:

npm install -D chai chai-spies    // chai.js 库
npm install -D karma karma-chrome-launcher karma-mocha karma-sinon-chai 
    mocha sinon sinon-chai karma-chai karma-chai-spies    //其他相关工具

这里假定你已经写好测试用例了,每次运行测试用例都需要手动打开浏览器,查看控制相关的报错信息,这个过程比较费时间,最好能配置一下让整个过程自动化进行。


2、Karma 的具体配置

在项目根目录下新建 karma.conf.js 文件,内容其实不需要深究,这里简单说两个配置选项,`files` 是测试用例打包后的文件所在位置,`browers` 代表默认打开的浏览器。具体的配置内容如下:

module.exports = function (config) {
  config.set({
    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',
    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['mocha', 'sinon-chai'],
    client: {
      chai: {
        includeStack: true
      }
    },
    // list of files / patterns to load in the browser
    files: [
      'dist/**/*.test.js',
      'dist/**/*.test.css'
    ],
    // list of files / patterns to exclude
    exclude: [],
    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {},
    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],
    // web server port
    port: 9876,
    // enable / disable colors in the output (reporters and logs)
    colors: true,
    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,
    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: true,
    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['ChromeHeadless'],
    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false,
    // Concurrency level
    // how many browser should be started simultaneous
    concurrency: Infinity
  })
}

3、执行自动化测试脚本

创建测试脚本,在 package.json 里面编写执行脚本:

"scripts": {
     "dev-test": "parcel watch test/* --no-cache & karma start",              //watch
     "test": "parcel build test/* --no-minify && karma start --single-run"    //一次性运行
 }

使用 `npm run test` 一次性运行(--single-run)。如果存在不知道的错误,可以尝试删除缓存重新打包。


或使用 `npm run dev-test` 进行 watch 运行,修改代码后会自动进行重新打包测试。


运行命令后,会执行 package.json 里面编写执行脚本,先打包 test 目录下的测试用例,然后打开浏览器进行测试,运行完毕后将测试结果可以直接显示到命令行上,十分的方便。


如果实在是懒到连 npm 脚本都不想写 ,还可以通过持续集成的方式进行代码测试,推荐:阮一峰:持续集成服务 Travis CI


                   

目录
相关文章
|
26天前
|
监控 JavaScript 前端开发
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
33 1
|
1月前
|
JavaScript 测试技术 API
Jest进阶:测试 Vue 组件
Jest进阶:测试 Vue 组件
|
7月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的办公自动化管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的办公自动化管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
3月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
162 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
2月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
707 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
2月前
|
JavaScript
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
33 3
|
3月前
|
JavaScript 测试技术
vue配置生产环境.env.production、测试环境.env.development
该文章介绍了如何在Vue项目中配置和使用不同的环境变量文件(.env、.env.production、.env.development)以适应开发、测试和生产环境,并通过修改`package.json`中的scripts来实现不同环境的打包。
690 0
vue配置生产环境.env.production、测试环境.env.development
|
7月前
|
JavaScript Java 测试技术
大学生体质测试|基于Springboot+vue的大学生体质测试管理系统设计与实现(源码+数据库+文档)
大学生体质测试|基于Springboot+vue的大学生体质测试管理系统设计与实现(源码+数据库+文档)
119 0
|
2月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
43 0
|
4月前
|
JavaScript 前端开发 测试技术
Vue.js开发者必看!Vue Test Utils携手端到端测试,打造无懈可击的应用体验,引领前端测试新风尚!
【8月更文挑战第30天】随着Vue.js的普及,构建可靠的Vue应用至关重要。测试不仅能确保应用质量,还能提升开发效率。Vue Test Utils作为官方测试库,方便进行单元测试,而结合端到端(E2E)测试,则能构建全面的测试体系,保障应用稳定性。本文将带你深入了解如何使用Vue Test Utils进行单元测试,通过具体示例展示如何测试组件行为;并通过Cypress进行E2E测试,确保整个应用流程的正确性。无论是单元测试还是E2E测试,都能显著提高Vue应用的质量,让你更加自信地交付高质量的应用。
83 0