Cypress — Как получить данные отдельного теста, такие как его название, состояние и т. Д

#javascript #automated-tests #cypress #cypress-cucumber-preprocessor #cypress-testing-library

#язык JavaScript #автоматизированные тесты #кипарис #кипарис-огурец-препроцессор #кипарис-тестирование-библиотека

Вопрос:

Я пытаюсь получить данные об одном тесте в Cypress, например, название, состояние и т. Д., Чтобы я мог создать собственный репортер. Но ни один из приведенных ниже вариантов в forEach не работает. Он возвращает неопределенное значение, но когда я передаю обычную строку, такую как «abcd», она печатается на консоли. Итак, как мне получить атрибуты теста.

first.spec.js

 /// lt;reference types="cypress" /gt;  context('Actions', () =gt; {    afterEach(()=gt; {  const testData = cy.state('runnable').currentTest;  cy.task('testOutput', {title: testData.title, state: testData.state, fullTitle: testData.fullTitle()});   // also tried    // Cypress.on('test:after:run', (test, runnable)=gt; {  //cy.task('testOutput', {title: runnable.title, state:runnable.state, fullTitle: runnable.fullTitle()});  //)};  });   it('test 1',()=gt;{    const assets = Cypress.env('assetoverride');  cy.getVar(assets);  }) });  

plugin/index.js

 module.exports = (on, config) =gt; {  on('task', {  testOutput({title, state, fullTitle}){  console.log(`Test ${fullTitle} - ${state} - ${title}`)  return null;  }  }); }  

Ответ №1:

Если вы выполняете свои тесты локально, вы можете запустить их в безредукторном режиме, выполнив команду:

 npx cypress run --spec "e2e/integration/NameOfYourTestFile.spec.js" --browser chrome --headless  

Таким образом, вы получите таблицу с результатами в терминале: введите описание изображения здесь