Cypress, как сделать запрос на сбой - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь вызвать действие, когда тест не пройден (что отправит мне электронное письмо).

Cypress.on('fail', (error, runnable) => {
cy.request('POST', 'https://mysite/api/', { action: 'cypress', error : error, runnable: runnable })
    throw error
})

describe('Test https://xxx/', function() {
    it('Visits the Page', function() {
        cy.visit('https://xxx/yyy/')
        .location('pathname').should('eq', '/yyy/thank-you')
    })
})

Но когда я его выполню, я получаю следующую предпосылку:

CypressError: Cypress detected that you returned a promise from a command while also invoking one or more cy commands in that promise.

The command that returned the promise was:

  > cy.location()

The cy command you invoked inside the promise was:

  > cy.request()

Можно ли вызвать запрос на публикацию сообщения о сбое?

Спасибо

1 Ответ

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

Попробуйте с простой fetch().Обратите внимание, что runnable имеет циклические ссылки, поэтому вы можете выделить некоторые части для сообщения.

Cypress.on('fail', (error, runnable) => {
  fetch('https://mysite/api/', {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify(runnable.title), // body data type must match "Content-Type" header
  });
  throw error
})

В моем тесте это не выдает ошибку вложенного обещания, и я вижу POSTв ожидании на вкладке сети, поэтому предположим, что он будет работать с kosha api на месте.

...