Cypress: как запустить код один раз перед началом всех тестов на тестах - PullRequest
0 голосов
/ 12 января 2019

Есть ли способ выполнить код один раз перед всеми тестами в Cypress? Мне нужно, чтобы запустить только один раз, прежде чем все спецификации. Проблема, которую я хочу решить, - это создать файл, необходимый для тестов, подготовить разрешения для пользователей и т. Д.

Я пробовал подключить «до» в файле поддержки index.js, но он запускает все тестовые спецификации.

Я также попытался запустить условный хук 'before' в index.js на основе переменной env, которую я установил в файле cypress.json следующим образом:

  "env": {
    "cypress_setup": false
  },

Я меняю переменную в хуке:

before(function () {
  // Set user permissions
  if (Cypress.env('cypress_admin') === false) {
    // do some stuff
    cy.log('o some stuff')
    // Change the variable to mark the hook as executed
    cy.exec('export cypress_admin="true"')
  }
})

но кажется, что Cypress устанавливает исходное значение переменной env перед каждым тестом.

Я ожидаю, что Cypress поддержит этот тип действий каким-то образом.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Если я прав, вам нужно иметь Глобальный сценарий установки , который выполняется только один раз перед выполнением ваших реальных наборов тестов. В настоящее время я не думаю, что такая возможность существует с Cypress.

Но мы можем справиться с этим обходным путем . Кроме того, обратите внимание, что выполняющийся тест в заказе считается Antipattern (на основе - https://github.com/cypress-io/cypress/issues/390). Вот шаги, которые необходимо выполнить,

  1. Иметь скрипт установки в cypress/support как функцию
  2. Вызов функции настройки из вашего теста (Идея - запустить скрипт установки как тест)
  3. Нам нужно сначала выполнить этот тест. На данный момент есть сейчас порядок по умолчанию тестов в Cypress; следовательно, будет просьба переименовать файл как 1_***.spec.js, 2_***.spec.js

Надеюсь, это поможет; это всего лишь обходной путь.

0 голосов
/ 13 января 2019

Да, вы можете сделать это, если напишите код в файле поддержки. Файл поддержки компилируется перед каждой тестовой спецификацией, проверьте this , как добавить файл поддержки.

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