Cypress - используйте переменные среды для разных языков - PullRequest
0 голосов
/ 19 июня 2020

Я хочу использовать переменные среды 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 с принудительным использованием языка из командной строки, например:

cypress run --env language=se

Где 'se' хранит IP-адрес кипариса. json file Я новичок в Cypress, поэтому буду благодарен за любую помощь.

1 Ответ

1 голос
/ 19 июня 2020

Неправильный способ чтения ip из переменной окружения.

В package.json скриптах:

  "test": "cypress run",

Обратитесь: Как запускать команды

При вызове команды с использованием npm run вам необходимо передать аргументы команды с помощью строки -.

npm command: npm run test-local -- --env language=se

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

In config.json:

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

In Test spe c:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...