配置API
Cypress允许您从配置中动态修改配置值和环境变量。
使用方法
caution
⚠️ 这段代码属于
setupNodeEvents 函数的一部分,
因此会在 Node 环境中执行。你不能在此函数中调用 Cypress
或 cy
命令,
但可以直接访问文件系统和操作系统的其他部分。
要修改配置,您需要从导出的setupNodeEvents
函数中返回一个配置对象。
- cypress.config.js 文件
- cypress.config.ts 文件
const { defineConfig } = require('cypress')
module.exports = defineConfig({
// setupNodeEvents can be defined in either
// the e2e or component configuration
e2e: {
setupNodeEvents(on, config) {
console.log(config) // 查看所有配置内容!
// 修改配置值
config.defaultCommandTimeout = 10000
config.baseUrl = 'https://staging.acme.com'
// 修改环境变量值
config.env.ENVIRONMENT = 'staging'
// 重要:返回更新后的配置对象
return config
},
},
})
import { defineConfig } from 'cypress'
export default defineConfig({
// setupNodeEvents can be defined in either
// the e2e or component configuration
e2e: {
setupNodeEvents(on, config) {
console.log(config) // 查看所有配置内容!
// 修改配置值
config.defaultCommandTimeout = 10000
config.baseUrl = 'https://staging.acme.com'
// 修改环境变量值
config.env.ENVIRONMENT = 'staging'
// 重要:返回更新后的配置对象
return config
},
},
})
当您从setupNodeEvents
函数返回一个对象时,Cypress会将其与原始配置进行"差异比较",并自动将解析后的值设置为您返回的内容。
如果不返回对象,则配置不会被修改。
caution
config
对象还包含以下不属于标准配置的额外值。这些值是只读的,无法通过Cypress配置中的setupNodeEvents
函数修改。
configFile
: Cypress配置文件的 绝对路径。有关此值的更多信息,请参阅--config-file和configFile文档。projectRoot
: 项目根目录的绝对路径(例如/Users/me/dev/my-project
)
解析后的值将显示在"Settings"选项卡中。

Promise支持
此外,Cypress会尊重并等待您返回的Promise。这使您能够执行异步任务,并最终返回修改后的配置对象。完整示例请参阅在多个配置文件之间切换。
示例
自定义可用浏览器
配置中包含系统上Cypress可用的浏览器列表。例如,您可以根据不同的测试目的更改或扩展该列表。
info