Есть ли надежный способ выхода из Cypress, если тест не пройден? - PullRequest
0 голосов
/ 01 ноября 2019

У нас есть большой набор тестов, работающий на CI-сервере, и, похоже, нет никакого способа сказать Cypress, чтобы он завершился в случае сбоя теста. Он всегда запускает весь пакет.

Здесь обсуждается здесь , но нет работоспособного решения.

Есть ли надежный способ выхода из Cypress сразу после тестирования? терпит неудачу?

1 Ответ

1 голос
/ 01 ноября 2019

Как вы упомянули, он официально еще не поддерживается (по состоянию на 3.6.0).

Вот мой взлом ( без использования файлов cookie и тому подобное для хранениясостояние):

// cypress/plugins/index.js

let shouldSkip = false;
module.exports = ( on ) => {
  on('task', {
    shouldSkip ( value ) {
      if ( value != null ) shouldSkip = value;
      return shouldSkip;
    }
  });
}
// cypress/support/index.js

function abortEarly () {
  if ( this.currentTest.state === 'failed' ) {
    return cy.task('shouldSkip', true);
  }
  cy.task('shouldSkip').then( value => {
    if ( value ) this.skip();
  });
}

beforeEach(abortEarly);
afterEach(abortEarly);

Пропустит все дальнейшие тесты, если возникнет ошибка. Вывод будет выглядеть так:

enter image description here

...