Как настроить среду для Cypress.io

Я занимаюсь настройкой набора тестов для веб-приложения моей компании. В то время мы используем четыре среды (производство, регрессия, подготовка, разработка). У меня есть переменные окружения в моем файле cypress.json, но я хотел бы иметь возможность переключить свою среду, например, с регрессии на разработку, и заставить Cypress изменить baseURL на мою новую среду, а также указать на другой файл cypress.json это имеет переменные развития. Документация по окружениям на cypress.io немного сбивает меня с толку, и я не уверен, с чего начать.

3 ответа

Я использую Cypress в разных средах, используя сценарии package.json. Вы можете передать в env vars перед командой cypress. Это будет выглядеть примерно так:

"scripts": {
  "cypress:open:dev": "CYPRESS_BASE_URL=http://localhost:3000 cypress open",
  "cypress:open:prod": "CYPRESS_BASE_URL=http://mycompanydomain.com cypress open",
  "cypress:run:dev": "CYPRESS_BASE_URL=http://localhost:3000 cypress run",
  "cypress:run:prod": "CYPRESS_BASE_URL=http://mycompanydomain.com cypress run",
}

Если вы хотите сделать вместо этого 4 отдельных файла cypress.json, вы можете присвоить им имена в соответствии со средой, и когда вы запускаете скрипт npm, соответствующий этой среде, просто скопируйте его, чтобы он стал основным cypress.json при запуске тестов.

Files: 
./cypress.dev.json
./cypress.prod.json
./cypress.staging.json
./cypress.regression.json

npm scripts:
"scripts": {
    "cypress:run:dev": "cp ./cypress.dev.json ./cypress.json; cypress run;"
} 

Вы можете передать файл конфигурации, который будет использоваться с --config-fileпараметр как:

Синтаксис:-

      cypress open --config-file <config-file-name>

Если у вас разные файлы среды, это должно быть так:

        "scripts": {
    "cypress:open:prod": "cypress open --config-file production-config.json",
    "cypress:open:stag": "cypress open --config-file staging-config.json",
  },

Если вы видите приведенные выше команды, мы говорим кипарису использовать production-config.jsonфайл для prodокружающая среда и так далее staging-config.jsonза stagОкружающая среда.

В последней версии Cypress (10 и выше) это можно сделать двумя способами:

1). Создание разных файлов конфигурации для каждой среды. Например: dev.config.js, stage.config.js, а затем создайте сценарий в package.json с флагом «--config -file <file_name>». Пример: «npx cypress run - -config -file dev.config.js"

2). Создание cypress.env.json и добавление URL-адресов или ключей для каждой среды.

Вот подробное видео - https://www.youtube.com/watch?v=ZW43ZM1yMuM

Другие вопросы по тегам