Как выполнить mochaReport. js (объединить отчеты mochawesome) после каждого тестового запуска Cypress - PullRequest
0 голосов
/ 29 мая 2020

У меня mergeReport.js, как определено ниже, и я выполняю как сценарий из package.json, и он работает нормально.

Проблема: пакет со временем вырос, а package.json стал громоздким с несколькими скриптами. Я искал способы, с помощью которых мы можем запускать / запускать (mergeReport.js) скрипт автоматически после каждого выполнения файла spe c независимо от результата - сбой / проходит состояние запуска

FYI: я генерирую xml и json отчет для каждого моего выполнения перед объединением отчетов для каждого json / xml файла

const junitReportMerger = require("junit-report-merger");
const marge = require("mochawesome-report-generator");
const mochawesomeMerge = require("mochawesome-merge");
const path = require("path");
const { readdirSync } = require("fs");

const reportDir = "cypress-tests-reports";
const mochawesomeReportJsonFolder = path.join(reportDir, "json");
const junitXmlSourceFolder = path.join(reportDir, "xml");
const junitXmlReportPath = path.join(reportDir, "TESTS-TestSuites.xml");

const mergeJsonReports = async () => {
  const report = await mochawesomeMerge.merge({ reportDir: mochawesomeReportJsonFolder })
  return marge.create(report, {
    reportFilename: "index.html",
    reportDir: reportDir,
  });
}

const mergeXmlReports = async () => {
  const junitXmlFiles = readdirSync(junitXmlSourceFolder)
    .map(fileName => path.join(junitXmlSourceFolder, fileName));
  return new Promise((resolve, reject) => {
    junitReportMerger.mergeFiles(junitXmlReportPath, junitXmlFiles, {}, err => {
      if (err) reject(err);
      resolve();
    });
  })
}

const mergeReports = async () => {
  console.log("Merging cypress spec reports...");
  await mergeJsonReports();
  await mergeXmlReports();
}

mergeReports();

Я пробовал событие Cypress: test:after:run как Cypress.on(test:after:run) и работает cy.exec(npm run mergeReports.js)

Но я много раз находил последний spe c запускаемый файл не всегда является частью отчета.

Кто-нибудь знает лучший способ запускать этот запуск каждый раз, чтобы мы могли правильно объединить отчеты со всей необходимой информацией о запуске.

...