Cypress - addContext () сохраняет предыдущий счетчик ошибок и добавляет его к каждому сценарию «это» в отчете mochawesome - PullRequest
0 голосов
/ 18 марта 2019

В моем mochawesome-отчете addContext() хранит предыдущий счет и добавляет его к каждому сценарию 'it', в случае неудачи тестового набора я добавляю 'someValue' в качестве контекста к тестовому сценарию. Таким образом, если 2-й тест не пройден, значение выводится дважды

Ниже приведен снимок:

enter image description here

Вот мой afterEach() метод:

afterEach(function () {
    if (this.currentTest.state === 'failed') {    
      var test = this.currentTest

      Cypress.on('test:after:run', (test) => {

        addContext({ test }, {
          title: 'Failing Screenshot: ' + '>> screenshots/' + Cypress.spec.name + '/' + test_name + ' -- ' + test.title + ' (failed)' + '.png <<',
          value: 'screenshots/' + Cypress.spec.name + '/' + test_name + ' -- ' + test.title + ' (failed)' + '.png'
          //value: 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAABkCAYAAAAVORraAAACH0lEQVR'
        })
      });
    } 
  })

Ответы [ 2 ]

1 голос
/ 18 июня 2019

Вы можете добавить этот код:

const addContext = require('mochawesome/addContext');

Cypress.on('test:after:run', (test, runnable) => {
  if (test.state === 'failed') {
    addContext({test}, { title: "Screenshot", value:`../cypress/screenshots/${Cypress.spec.name}/${runnable.parent.title} -- ${test.title} (failed).png` })
  }
})

внутри "support / index.js", и в ваших отчетах будет скриншот неудачного теста

1 голос
/ 18 марта 2019

Получил то, что я искал от https://docs.cypress.io/api/events/catalog-of-events.html#Cypress-Events

enter image description here

Хотя мне придется удалить Cypress.on('test:after:run', afterEach()

Так что мне нужно будет указать Cypress.on('test:after:run', в каждом файле спецификации

const spec_name = this.title

  Cypress.on('test:after:run', (test) => {

    if (test.state === 'failed') {
      addContext({ test }, {
        title: 'Failing Screenshot: ' + '>> screenshots/' + Cypress.spec.name + '/' + spec_name + ' -- ' + test.title + ' (failed)' + '.png <<',
        value: 'screenshots/' + Cypress.spec.name + '/' + spec_name + ' -- ' + test.title + ' (failed)' + '.png'
      })
    }
  });

что-то вроде отложено, было бы лучше поместить весь этот код в support/command.js

...