我正在尝试使用baseUrl
文件覆盖cypress.json
的{{1}}值,但我似乎无法弄清楚如何。有没有办法做到这一点?
在cypress.env.json
文件中设置环境变量,稍后在cypress.json
中覆盖它们为easy as pie。在cypress.env.json
:
cypress.json
...并在{
"env": {
"someVariable": "originalValue"
}
}
:
cypress.env.json
关于配置变量,the documentation states:
如果您的环境变量与标准配置键匹配,那么它们将改为覆盖配置值,而不是设置
{ "someVariable": "newValue" }
。
但是,如果我尝试从environment variable
...
baseUrl
cypress.json
...并在{
"baseUrl": "http://example.com/setFromCypress.json",
"env": {
"someVariable": "originalValue"
}
}
...
cypress.env.json
...然后{
"baseUrl": "http://example.com/setFromCypress.env.json",
"someVariable": "newValue"
}
被覆盖,但现有的someVariable
保持不变(baseUrl
键位于baseUrl
键内的env
内:
在baseUrl
中设置cypress.json
并稍后使用CYPRESS_BASE_URL
在命令行中覆盖它时,我没有问题:
$ export CYPRESS_BASE_URL=http://example.com/setFromCommandLine
然后,原始baseUrl
被覆盖:
总结一下:我是否遗漏了文档中的内容,或文档中缺少哪些内容?
答案 0 :(得分:0)
在上面的帖子之后,在上面的github问题中解释说这不算是一个bug。来自cypress.env.json的变量被加载到整个配置中的environmentVariables变量中(尽管当前文档会引导您相信)。整个配置文件是cypress.json。在github问题中,我提供了关于为什么当前解释令人困惑的备份。
答案 1 :(得分:0)
一个简单的解决方法:在plugins / index.js中执行
module.exports = (on, config) => {
if(config.hasOwnProperty('env') && config.env.hasOwnProperty('baseUrl')){
config.baseUrl = config.env.baseUrl;
}
return config
}