vue自动化测试

本文详细介绍了如何在不使用vue-cli的情况下,手动为Vue项目添加Karma自动化测试。从新建项目到配置karma、安装依赖、编写测试代码、查看测试覆盖率,以及解决遇到的坑,如'webpack'加载错误和全局karma安装问题,提供了完整的步骤和解决方案。通过这篇教程,读者可以了解Karma、Mocha和Chai在Vue项目中的应用。

网上很多都是用vue-cli新建项目,生成的结构内容很复杂,反正我是看着头很晕的,不知道你们是不是,所以试着自己在vue项目添加测试。现在前端的各种工具更新太快了,网上好多教程都有坑,所以想自己记录下来。

vue官网给的例子用的是karma + mocha + chai。

  1. karma:Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。
  2. mocha:mocha是一个基于nodejs和浏览器集合的各种特性的JavaScript测试库。
  3. chai:chai是一个基于nodejs的断言库,并且完美支持各种主流的JavaScript测试框架。。

新建项目

vue安装环境不说了,网上一抓一大把,不会的同学移步到Vue2.0 新手完全填坑攻略——从环境搭建到发布

我们选择简易版生成vue项目

vue init webpack-simple npm-karma

目录结构

这里写图片描述

hello.vue

    <template>
        <div>
            <h1>{
   
   {
   
   title}}</h1>
        </div>
    </template>
    <script>
    export default {
        data () {
            return {
                title: 'hello world'
            }
        }
    }
    </script> 

安装karma

全局安装karma-cli

npm install karma-cli -g

进入项目目录下执行

karma init

这里选择vue推荐的mocha,根据上下键来进行选择,然后回车就好。

选择mocha

这里选择no

这里写图片描述

这里选择phantomJS,注意PhantomJS需要提前安装在电脑上,当然选择Chrome更方便

这里写图片描述

填写测试脚本存放位置,支持通用匹配。我们可以后面手动填写。选择空,回车

这里写图片描述

是否有需要排除的符合前面格式的问文件,选择空,回车

这里写图片描述

选择自动监测测试。选择yes

这里写图片描述

接下来项目根路径会有一个karma.config.js文件。

这里写图片描述

安装依赖

这时候我们的项目中的依赖如下:

这里写图片描述

我们已经选择了mocha作为测试库,还需要安装mocha和karma-mocha

浏览器选择了phantomjs,这里我们还需要安装 karma-phantomjs-launcher

使用webpack打包,还需要安装karma-webpack,extract-text-webpack-plugin

使用chai作为断言库,需要安装chai、sinon-chai、sinon、karma-sinon-chai

npm install karma-webpack karma-mocha chai sinon-chai sinon karma-sinon-chai karma-phantomjs-launcher extract-text-webpack-plugin mocha –save-dev

修改配置

karma配置中需要引入webpack配置,我们新建一个专门配置的文件夹存放所需的配置,

如下图,在项目根目录下新建了一个config文件夹

这里写图片描述

webpack.test.config.js

var path = require("path")
var webpack = require("webpack")
var ExtractTextPlugin = require('extract-text-webpack-plugin')

function resolve(dir) {
   
   

    return path.join(__dirname, '..', dir)
}

var webpackConfig = {

    module: {

        rules: [

            // babel-loader
            {
                test: /\.js$/,
                use: 'babel-loader',
                include: [resolve('src'), resolve('test')]
            },

            // vue loader
            {
                t
### Vue.js 项目中的前端自动化测试 #### 使用 Jest 和 Vue Test Utils 进行单元测试 对于 Vue.js 应用程序来说,Jest 是一种非常流行的选择来进行单元测试。配合 `@vue/test-utils` 可以方便地模拟和测试单文件组件的行为。 ```javascript // example.spec.js import { shallowMount } from '@vue/test-utils' import MyComponent from '@/components/MyComponent.vue' describe('MyComponent.vue', () => { it('renders props.msg when passed', () => { const msg = 'new message' const wrapper = shallowMount(MyComponent, { propsData: { msg } }) expect(wrapper.text()).toMatch(msg) }) }) ``` 通过上述方式能够有效地验证各个独立模块的功能逻辑是否正常工作[^1]。 #### 配合 Cypress 执行 E2E 测试 Cypress 提供了一种直观的方法来编写端到端 (End-to-End) 的集成测试案例。其优势在于可以直接操作浏览器环境下的真实 DOM 结构并捕获交互行为。 ```javascript /// <reference types="cypress" /> context('Actions', () => { beforeEach(() => { cy.visit('/') }) it('.type() - type into a DOM element', () => { // Type into an input field and verify the value is set correctly. cy.get('input').type('Vitest') .should('have.value', 'Vitest') }) }) ``` 这有助于确保整个应用流程的一致性和稳定性,在持续集成管道中扮演重要角色[^2]。 #### 利用 Vitest 加速测试执行速度 作为 Vite 生态的一部分,Vitest 能够显著提升测试套件的启动时间和反馈循环效率。尤其适合大型项目的快速迭代需求。 ```bash npm install vitest --save-dev ``` 随后可以在 package.json 中定义脚本: ```json { "scripts": { "test": "vitest" } } ``` 利用这些工具和技术栈组合起来,可以构建起一套完整的测试体系结构,从而保障产品质量的同时也提高了团队协作效能[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值