在 Cypress 上的 Json 文件中使用环境变量

Jon*_*ana 3 environment-variables cypress

我想知道是否有办法使用环境变量?

我导出这个变量:

export CYPRESS_USER_ID='UserID'
Run Code Online (Sandbox Code Playgroud)

我想在我的配置文件(dev.json)中看到它:

{
    "baseUrl": "https://url.com",
    "viewportWidth": 1280,
    "viewportHeight": 720,
    "env": {
        "UserID": "${CYPRESS_USER_ID}",
        "environment": "dev"      
    }    
  }
Run Code Online (Sandbox Code Playgroud)

我正在这样运行我的测试:

npx cypress open --env configFile=dev
Run Code Online (Sandbox Code Playgroud)

Bil*_*urr 5

您应该了解操作系统级变量前缀CYPRESS_envconfig.json 的部分是设置变量的替代方法。

这两种方法都会导致您的测试可以通过或Cypress.env()访问变量。Cypress.env('USER_ID')Cypress.env('UserID')

换句话说,尝试“查看” CYPRESS_USER_IDdev.json 是没有意义的,从测试的角度来看,它实际上没有做任何额外的事情。

如果您想将密钥更改为 ,USER_IDUserID可以在支持文件中进行操作

const osLevelUserId = Cypress.env('USER_ID')
if (osLevelUserId) {
  Cypress.env('UserID', osLevelUserId)
}

// or 

Cypress.env('UserID', Cypress.env('USER_ID') || Cypress.env('UserID'))
Run Code Online (Sandbox Code Playgroud)

这将允许 dev.json 中的默认值和操作系统级别的可选覆盖。