127 lines
2.7 KiB
TypeScript
127 lines
2.7 KiB
TypeScript
/**
|
|
* Cypress E2E 测试配置
|
|
*/
|
|
|
|
import { defineConfig } from 'cypress'
|
|
|
|
export default defineConfig({
|
|
e2e: {
|
|
// 基础URL
|
|
baseUrl: 'http://localhost:5173',
|
|
|
|
// 测试文件位置
|
|
specPattern: 'tests/e2e/**/*.cy.{js,jsx,ts,tsx}',
|
|
|
|
// 支持文件位置
|
|
supportFile: 'tests/e2e/support/e2e.ts',
|
|
|
|
// 固件文件位置
|
|
fixturesFolder: 'tests/e2e/fixtures',
|
|
|
|
// 截图和视频配置
|
|
screenshotsFolder: 'tests/e2e/screenshots',
|
|
videosFolder: 'tests/e2e/videos',
|
|
|
|
// 视频录制
|
|
video: true,
|
|
videoCompression: 32,
|
|
|
|
// 截图配置
|
|
screenshotOnRunFailure: true,
|
|
|
|
// 视口配置
|
|
viewportWidth: 1280,
|
|
viewportHeight: 720,
|
|
|
|
// 等待配置
|
|
defaultCommandTimeout: 10000,
|
|
requestTimeout: 10000,
|
|
responseTimeout: 10000,
|
|
pageLoadTimeout: 30000,
|
|
|
|
// 重试配置
|
|
retries: {
|
|
runMode: 2,
|
|
openMode: 0
|
|
},
|
|
|
|
// 浏览器配置
|
|
chromeWebSecurity: false,
|
|
|
|
// 环境变量
|
|
env: {
|
|
// API基础URL
|
|
apiUrl: 'http://localhost:3000/api',
|
|
|
|
// 测试用户凭据
|
|
testUser: {
|
|
username: 'testuser',
|
|
password: 'password123',
|
|
email: 'test@example.com'
|
|
},
|
|
|
|
// 测试管理员凭据
|
|
adminUser: {
|
|
username: 'admin',
|
|
password: 'admin123',
|
|
email: 'admin@example.com'
|
|
}
|
|
},
|
|
|
|
setupNodeEvents(on, config) {
|
|
// 任务注册
|
|
on('task', {
|
|
// 数据库清理任务
|
|
clearDatabase() {
|
|
// 这里可以添加数据库清理逻辑
|
|
return null
|
|
},
|
|
|
|
// 创建测试数据任务
|
|
seedTestData() {
|
|
// 这里可以添加测试数据创建逻辑
|
|
return null
|
|
},
|
|
|
|
// 日志输出任务
|
|
log(message) {
|
|
console.log(message)
|
|
return null
|
|
}
|
|
})
|
|
|
|
// 文件处理
|
|
on('before:browser:launch', (browser, launchOptions) => {
|
|
if (browser.name === 'chrome') {
|
|
// Chrome 特定配置
|
|
launchOptions.args.push('--disable-dev-shm-usage')
|
|
launchOptions.args.push('--no-sandbox')
|
|
}
|
|
|
|
return launchOptions
|
|
})
|
|
|
|
// 配置处理
|
|
on('before:spec', (spec) => {
|
|
console.log(`Running spec: ${spec.name}`)
|
|
})
|
|
|
|
return config
|
|
}
|
|
},
|
|
|
|
component: {
|
|
// 组件测试配置
|
|
devServer: {
|
|
framework: 'vue',
|
|
bundler: 'vite'
|
|
},
|
|
|
|
specPattern: 'src/**/*.cy.{js,jsx,ts,tsx,vue}',
|
|
supportFile: 'tests/e2e/support/component.ts',
|
|
|
|
viewportWidth: 1000,
|
|
viewportHeight: 660
|
|
}
|
|
})
|