Способ обмена данными между двумя тестовыми прогонами в Cypress для разных источников - PullRequest
0 голосов
/ 15 января 2020

В кипарисе

  1. Я пытаюсь создать случайное число за одну операцию c, разместив его на первом сайте

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

Это выиграно ' Это произойдет, поскольку тот же код для создания случайного числа будет запущен снова, в случае, если мы сгенерируем в блоке before (), таким образом, создадим и назначим другое случайное число для этой переменной, поскольку блок before () будет запущен снова в случае, если мы посетим другой URL

Есть несколько способов использования -

  1. опишите область действия функции -> снова запустите и присвойте новое случайное число
  2. stati c свойства класса -> запустите снова ...
  3. java принцип синглтона -> будет выполняться снова ...
  4. команды кипариса в cypress / support / command. js -> будут выполняться снова ...
  5. локальное хранилище -> не работает, loc Все хранилища очищаются при посещении другого URL

Ни один из них не работал, хотя если бы мы не посетили другой URL, все они работали бы нормально

1 Ответ

0 голосов
/ 15 января 2020

Это задокументировано здесь https://github.com/cypress-io/cypress/issues/2636 , что невозможно использовать cy.visit для посещения веб-сайтов с разными источниками и поддержания состояния

У меня есть два решения для такого сценария ios

  1. используйте cy.writeFile для записи в первом запуске и cy.readFile для чтения в следующем запуске, так как он фактически записывает в файловую систему, это сохраняется и таким образом решается наша проблема в том, что мы можем поддерживать состояние
  2. Использовать файл JSON для данных и, следовательно, cy.fixture (). then (str => str), который останется общим для обоих тестовых прогонов
...