首页 > 解决方案 > 赛普拉斯:无法在测试文件中使用命令行中的 --env 变量

问题描述

在我的赛普拉斯设置中,我的 cypress.json 文件中有以下值(以及其他值):

{
 "PREPROD": {
    "url": "https://preprod.com",
    "username": "admin",
    "password": "admin"
  },
 "PROD": {
    "url": "https://prod.com",
    "username": "admin",
    "password": "admin"
  }
}

我的测试文件位于 cypress/integration/test.js

根据我要运行测试的环境,我想在我的测试文件中使用与该环境相关的值

我试过这样运行:

npx cypress run --env environment="PREPROD" --spec "cypress/integration/test.js"

这将返回一个错误,指出未定义环境。

在我的测试文件中,我有以下使用命令行中的变量:

Cypress.config().environment.username

如何使用我在命令行中定义的变量?我试过在这里阅读文档,但它对我不起作用:赛普拉斯文档

标签: javascriptconfigurationcypress

解决方案


根据文档,您可以environment像这样访问变量:

Cypress.env('environment')

如果您想获得取决于此的选项,您可以执行以下操作:

const CypressConfiguration = require('cypress.json')

const environment = Cypress.env('environment') || 'PREPROD'

const options = CypressConfiguration[environment]

另一种方法是使用以下config-file选项:

cypress.prod.json

{
    "url": "https://prod.com",
    "username": "admin",
    "password": "admin"
}

cypress.preprod.json

{
    "url": "https://preprod.com",
    "username": "admin",
    "password": "admin"
}

然后:

npx cypress run --config-file cypress.prod.json --spec "cypress/integration/test.js"

推荐阅读