Переопределение конфигурационного файла с переменной env в Cypress

#javascript #automated-tests #integration-testing #cypress

#javascript #автоматизированные тесты #интеграция-тестирование #cypress

Вопрос:

Я использую эту ссылку в качестве ссылки для передачи конфигурации в мои тесты cypress: https://docs.cypress.io/api/plugins/configuration-api.html#Switch-between-multiple-configuration-files

Мой пример конфигурационного файла выглядит следующим образом:

  {
  "env": {
    "country": "US",
    "testenv": "staging",
    "US": {
     "baseUrl" : "somevalue"
    }
}
  

Теперь я хочу переопределить значение страны из командной строки, я попытался использовать

 cypress open --env country="Germany"
  

но он по-прежнему не принимает значение, переданное в командной строке, и по-прежнему принимает значение из файла конфигурации. Любая помощь по этому вопросу очень ценится!

Комментарии:

1. Не могли бы вы обновить свой вопрос, чтобы показать полную команду CLI, которую вы используете для запуска cypress с переопределением этих значений env?

2. Выполнено. Спасибо за правки.

Ответ №1:

Не уверен, что произойдет в вашем случае. Вот разрешенные настройки при выполнении просто npx cypress open

введите описание изображения здесь

Теперь, когда я запускаю $ npx cypress open --env country=Canada здесь, это вкладка разрешенных настроек

введите описание изображения здесь

Комментарии:

1.В моем случае я передаю файл через плагин, как рекомендовано в руководстве, следующим образом: module.exports = (on, config) => { // accept a configFile value or use development by default const file = config.env.configFile || "staging"; return getConfigurationByFile(file); function getConfigurationByFile(file) { const pathToConfigFile = path.resolve(".", "cypress/config", `${file}.json`); return fs.readJson(pathToConfigFile); } — по какой-то причине по умолчанию всегда используются значения в файле конфигурации. Теперь я попробую ваш метод. Спасибо!

Ответ №2:

Я столкнулся с той же проблемой и решил ее, используя следующий подход:

Я использую следующую команду:

 npm run dev -- --config video=false
  

Это преобразуется в following by node:

 cypress open -C config.json "--config" "video=false"
  

Это работает ТОЛЬКО тогда, когда у меня нет флага video, присутствующего в моем config.json . Поэтому я не могу начать со значения по умолчанию для параметра, который я хотел бы переопределить.