javascript - 赛普拉斯:无法在测试文件中使用命令行中的 --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
如何使用我在命令行中定义的变量?我试过在这里阅读文档,但它对我不起作用:赛普拉斯文档
解决方案
根据文档,您可以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"
推荐阅读
- ruby - 这是什么意思?运行“捆绑添加”时找不到命令“添加”
- python - 如何延迟python脚本?
- php - 为什么 ngnix 或 docker 看不到 index.php 文件?
- java - 如何忽略spring jpa未映射的实体值
- c# - 访问一种方法,该方法通过从不同的代码隐藏页面单击按钮来填充网格视图
- mysql - MySQL 8.0.26 的 WHILE 循环中的语法无效
- amazon-web-services - 使用 AWS KMS 和 Secrets Manager 加密 PII + RDS 数据库中的其他数据
- python - 在纸浆优化模型中编写决策变量和目标函数
- java - 使用java堆外内存和兼容性
- powershell - 动态更改对象的嵌套属性(例如:$_.Property.SubProperty)