什么是Cypress?
Cypress是一个基于JavaScript的前端测试工具,它允许对浏览器中运行的任何内容进行快速、简单、可靠的测试,并且覆盖了测试金字塔模型的所有测试类型,包括界面测试、集成测试和单元测试。Cypress的特点在于它将测试运行在一个单独的Chrome浏览器实例中,从而更好地模拟用户操作。
安装
yarn add -D cypress || npm install -D cypress
//package.json
"scripts": {
    "cypress:open": "cypress open",
    //...
}
配置
执行 cypress open 打开cypress 启动页, 选择 E2E(端对端测试)或者  compoent(组件测试). 之后根据提示进行操作。 安装依赖 - 添加文件 - 选择浏览器测试
配置全局变量(可选)
// cypress.config.js
module.exports = {  
  env: {  
    myGlobalVar: 'someValue'  
  }  
};
配置全局样式,在component文件中直接引入,全局样式
// cypress/support/component.ts
import '@/assets/styles/index.css'
配置全局方法(自定义方法)
// cypress/support/commands.ts
Cypress.Commands.add('mount', (component, options = {}) => {
  options.global = options.global || {}
  options.global.stubs = options.global.stubs || {}
  options.global.stubs.transition = false
  options.global.components = options.global.components || {}
  options.global.plugins = options.global.plugins || []
  const {/* store = getStore(), */ ...mountOptions} = options
  options.global.plugins.push({
    install(app) {
      app.use(i18n)
    },
  })
  return mount(component, mountOptions)
})
简单示例
在 components 目录添加组件对应的测试文件
//Head.cy.ts
import Head from './Head.vue'
import {i18n} from '../modules/i18n'
import {router} from '../modules/route'
describe('<Head />', () => {
  it('renders', () => {
    cy.mount(Head,{
      global: {
        plugins:[i18n,router]
      }
    })
  })
})
//Head.ts
export function testName (name) {
    return name
}
问题集合
执行vitestui 报错 Cannot read properties of undefined (reading ‘config’)
vitest 和 vitest/ui 的版本和 vite 不匹配
pnpm i vitest@latest @vitest/ui@latest -D