【发布时间】:2020-12-08 02:31:03
【问题描述】:
这是我的How to refer to environment variables in Cypress config files? 帖子的后续。 Steve Zodiac 的答案确实是正确的。
所以我有一个像这样的环境块的配置文件
{
"env" : {
...
"db" : {
"user" : "db_user",
"password" : "pw1234",
"host" : "my_db.company.com",
"port". : 3306
}
...
}
我不想硬编码user/password 凭据,所以我在命令行上执行此操作
$ npm run cy:open -- --config-file config/my_config.json --env '{"db":{"user":"db_user","password":"pw1234"}}'
并删除我的配置文件中的 user 和 password 键/值对。
{
"env" : {
...
"db" : {
"host" : "my_db.company.com",
"port". : 3306
}
...
}
我在赛普拉斯控制台的赛普拉斯Setting->Configuration 选项卡中看到了正确的db: user/pw 凭据。但是,当我运行上面的命令时,我看到了这个错误,也就是说,好像没有正确设置数据库凭据。
Error: (conn=716050, no: 1045, SQLState: 28000) Access denied for user ''@'10.40.0.44' (using password: NO)
如果我创建一个虚拟变量,像这样
{
"env" : {
...
"db" : {
"user" : "dummy",
"password" : "dummy",
"host" : "my_db.company.com",
"port". : 3306
}
...
}
并在上面运行我的npm run cy:open... 命令,我得到以下信息。 IOW,虚拟值不会像我预期的那样被传入的值取代。
Error: (conn=782727, no: 1045, SQLState: 28000) Access denied for user 'dummy'@'10.40.0.44' (using password: YES)
我错过了什么?
【问题讨论】:
-
如果您在
cypress.json中为用户名和密码创建虚拟变量,会有帮助吗?例如。在“db”中,创建类似“user”:“dummy”,“password”:“dummy”的内容。 -
一个问题是
--env需要key=value格式,但您只给出了值部分。即使使用正确的格式,您也无法传递对象。命令行上的值始终是一个字符串(带引号或不带引号) - 这是命令行环境的限制。 -
@AlapanDas 我更新了我的 OP 来回答你的问题。
-
@RichardMatsen,我想我正在给它键/值部分,我在 Cypress
Settings->Configuration控制台中看到它们。
标签: cypress