vue的自动化测试详解(三)

简介: vue的自动化测试详解

如何测试不通过就阻止代码git提交

安装husky:cnpm i husky --save

配置husky,在package.json

"husky": {
    "hooks": {
      "pre-commit": "npm test",
      "pre-push": "npm test",
      "...": "..."
    }
  }

当然这是文档的,我们要按我们所需的改成

"husky": {
    "hooks": {
      "pre-commit": "npm run test:unit"
    }
  }

代表再提交(commit)前先执行npm run test:unit

?‍?验证:

修改测试代码文件kaikeba.spec.js

it('测试新建完毕后,create生命周期后的数据',() => {//created
        let vm = new Vue(KaiKeBaComp).$mount()
        expect(vm.msg).toBe('aftermounted')
    })

改为

it('测试新建完毕后,create生命周期后的数据',() => {//created
        let vm = new Vue(KaiKeBaComp).$mount()
        expect(vm.msg).toBe('aftermounted1')
    })

这样测试肯定是不通过的

f92b36c332e1e5ba91135313569fd0de.jpg

这时,我们来提交代码,add后再commit

44bfd2ddeb8577e7865a94df37f75475.jpg

那么我们再将测试文件改回来,让测试可以通过

1be74f471d890be0f725bbae3e987719.jpg

如图:测试通过,代码也commit提交了


E2E测试


e2e针对应用,站在测试人员的角度,没有什么mount 加载,只有按钮 页面,输入框,文本等


借⽤浏览器器的能力,站在⽤户测试⼈员的角度,输⼊框,点击按钮等,完全模拟用户,这个和具体的框架关系不大,完全模拟浏览器行为


?将views下的Home组件的

<HelloWorld msg="Welcome to Your Vue.js App"></HelloWorld>

代码恢复

?看看tests目录下e2e目录下的spec下的test.js,有这么一段

// https://docs.cypress.io/api/introduction/api.html
describe('My First Test', () => {
  it('Visits the app root url', () => {
    cy.visit('/')
    cy.contains('h1', 'Welcome to Your Vue.js App')
  })
})

这是测试代码,如果我们不做前面的恢复操作的话,测试肯定是不通过的

?执行npm run test:e2e,进行测试

项目会启动,并且会弹出一个有ok的弹窗,我们直接确定,还会有测试文件的js,选择对应的测试文件点进去

7fbb0638897feb32ab623d16e2750a6a.jpg

这样就已经测试通过了

?再来测试一个about页

// https://docs.cypress.io/api/introduction/api.html
describe('My First Test', () => {
  it('Visits the app root url', () => {
    //访问根目录
    cy.visit('/')
    cy.contains('h1', 'Welcome to Your Vue.js App')
  })
  it('测试about页', () => {
    //访问about
    cy.visit('about')
    cy.contains('h1', 'This is an about page')
  })
})

结果是这个样子

11642380a285372d6ab23bd2d8f8fffb.jpg

后测的about,就最后打开了about页,也停留在了about页面

这些都是页面某个元素的文本的测试,那么我们再来个交互试试,在我们的KaiKeBa组件上有个点击事件,我们来试试

// https://docs.cypress.io/api/introduction/api.html
describe('My First Test', () => {
  it('Visits the app root url', () => {
    //访问根目录
    cy.visit('/')
    cy.contains('h1', 'Welcome to Your Vue.js App')
  })
  it('测试about页', () => {
    //访问about
    cy.visit('about')
    cy.contains('h1', 'This is an about page')
  })
  it('KaiKeBa组件',() => {
    //访问根目录
    cy.visit('/')
    cy.contains('#msg','aftermounted')
    cy.get('button').click()//点击button元素
    cy.contains('#msg','click over')
  })
})

c6b560e5503142320a7d02f49553947b.jpg

左边那一条条可以点击,点击不同的项,也会进入不同的事件状态,例如我点了CONTAINS,文本变成了click over


题外话:测试页面前后差异,或者两个页面的差异可以用page-monitor;地址: https://github.com/fouber/page-monitor


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