【问题标题】:Cypress - use environment variables for various languages赛普拉斯 - 使用各种语言的环境变量
【发布时间】:2020-10-09 11:48:03
【问题描述】:

我想使用 Cypress 环境变量来强制浏览器使用不同的语言。

这是我的示例 cypress.json 的样子:

{
"env":{
    "baseUrl": "localhost",
    "language": {
        "en": "5.44.16.0",
        "se": "31.211.192.0"
    },
}
}

我试过了:

const market = Cypress.env(language.se) // se here is just an example, I want it to be dynamic
cy.server({
            onAnyRequest: function (route, proxy) {
                proxy.xhr.setRequestHeader(
                    "x-forwarded-for",
                    market
                );
            },
        });
        cy.visit(Cypress.env('baseUrl'))

但它没有用。

我想要实现的是能够通过从命令行强制语言来执行赛普拉斯,如下所示:

cypress run --env language=se

“se”存储来自 cypress.json 文件的 IP 值 我是赛普拉斯的新手,所以非常感谢任何帮助。

【问题讨论】:

  • 我已经用npm run 命令更新了我的答案。

标签: ui-automation cypress


【解决方案1】:

你需要从环境变量中读取“ip”的方式是错误的。

package.json 脚本中:

  "test": "cypress run",

参考:How to run commands

使用 npm run 调用命令时,需要使用 -- 字符串传递命令的参数。

npm 命令:npm run test-local -- --env language=se

direct cypress command:cypress run --env language=se

config.json:

{
  "env":{
    "baseUrl": "localhost",
    "ip": {
        "en": "5.44.16.0",
        "se": "31.211.192.0"
    }
  }
}

Test 规范中:

const language = Cypress.env('language');
const market = Cypress.env('ip')[language] // se here is just an example, I want it to be dynamic
cy.log(`All: ${JSON.stringify(Cypress.env('ip'))}`);
cy.server({
    onAnyRequest: function (route, proxy) {
        cy.log(`For language: ${language} => ${market}`);
        proxy.xhr.setRequestHeader(
            "x-forwarded-for",
            market
        );
    },
});
cy.visit(Cypress.env('baseUrl'))

注意:我使用cypress open --env language=se作为截图

【讨论】:

  • 感谢您的快速回答!不幸的是,它对我不起作用 - 我得到:对于语言:未定义 => 未定义 i.stack.imgur.com/d5CvP.png
  • 您是否使用npm run {cypress-script} --env language=se 设置环境变量?
  • 我正在使用npm run cypress open --env language=en 你使用了哪个版本的赛普拉斯来使它工作?
  • 不管版本。我刚刚更新到最新的 4.8.0 并得到了相同的结果。
  • @mariobrosbb: 版本不是问题......你的 npm 脚本设置的方式......你正在执行 npm run 有问题。
猜你喜欢
  • 2022-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 2023-01-26
  • 1970-01-01
相关资源
最近更新 更多