Управление несколькими сайтами в cypress - PullRequest
0 голосов
/ 21 июня 2020

Ниже приведены три национальных сайта, которые у меня есть -

Сайт 1 - https://example.com/uk

Сайт 2 - https://example.com/fr

Сайт 3 - https://example.com/ie

Все 3 сайта используют одну и ту же кодовую базу и в зависимости от страны (uk | fr | ie ) в моем коде я передаю некоторую конфигурацию по умолчанию, например текст страны c и переключатель включения / отключения некоторых функций и т. д. c. на внутренние страницы.

В моем кипарисовом я создал fixtures как -

/ fixtures -

  /uk
    -uk-config.json

  /fr
    -fr-config.json

  /ie
    -ie-config.json

Я застрял со структурой папок в папке integration и не знаете, как это сделать. Пожалуйста, помогите мне в этом.

Вариант 1-

/ интеграция -

/uk
  -homepage.spec.js
  -plp.spec.js
  -pdp.spec.js
  -cart.spec.js


/fr
  -homepage.spec.js
  -plp.spec.js
  -pdp.spec.js
  -cart.spec.js


/ie
  -homepage.spec.js
  -plp.spec.js
  -pdp.spec.js
  -cart.spec.js

Проблема с этим подходом - Хотя этот код более сегрегирован по странам, но здесь много дубликатов кода, и он увеличивается по мере запуска магазинов в других странах.

Вариант 2 -

/ integration -

  -homepage.spec.js
  -plp.spec.js
  -pdp.spec.js
  -cart.spec.js

И в этом проходе страна указывает c конфигурации из приспособлений. ТБХ, я не знаю, как я могу с этим справиться, и было бы действительно хорошо, если бы кто-то нашел, что это лучший способ, и мог бы дать некоторые указатели на это, было бы действительно полезно.

1 Ответ

0 голосов
/ 21 июня 2020

Проблема:
Если я ясно понял вашу проблему, вы хотите запустить тот же набор тестов, но для разных стран, и вы столкнулись с проблемами при чтении, и есть проблема, что набор увеличивается если будет добавлено слишком много стран, только для тестирования того же набора тестов. Правильно ??

Решение:
Вы можете передать переменную COUNTRY как переменную env узла из командной строки и назначить ее как переменную env Cypress и прочитать ее в ваших тестах.

"test": "COUNTRY=$COUNTRY ./node_modules/.bin/cypress open --env COUNTRY=$COUNTRY"

Ваша команда запуска должна быть такой, как показано ниже

COUNTRY=fr npm run test
COUNTRY=in npm run test
COUNTRY=uk npm run test
COUNTRY=whatever npm run test
let json = require('config.json');
export const getCountryUrl = () => {
  return json[Cypress.env().COUNTRY]['url']
}
{
  "uk": {
    "url": "https://uk-website"
  },
  "fr": {
    "url": "https://fr-website"
  }
}
...