From 0695b35c9fd365cc26ee4693591e194f89916f30 Mon Sep 17 00:00:00 2001 From: Joshua Kiwiet-Pantaleoni Date: Wed, 27 Oct 2021 13:12:48 -0700 Subject: [PATCH] fix(cypress): remove old reports before cypress tests start VUE-793 --- test/e2e/plugins/merge-reports.js | 52 +++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/test/e2e/plugins/merge-reports.js b/test/e2e/plugins/merge-reports.js index 7dd4165369..683879dc5d 100644 --- a/test/e2e/plugins/merge-reports.js +++ b/test/e2e/plugins/merge-reports.js @@ -1,28 +1,48 @@ const path = require('path'); const { mergeFiles } = require('junit-report-merger'); +const rimraf = require('rimraf'); /* eslint-disable no-console */ module.exports = on => { - // Merge together junit reports from all spec files into single junit report - on('after:run', results => { - if (results) { - console.log('Merging test result reports...'); + const reportFileGlob = `${__dirname}/../results/*.xml`; + const combinedReportPath = path.join(__dirname, '..', 'results', 'combined.xml'); - const outputFile = path.join(__dirname, '..', 'results', 'combined.xml'); - const inputFiles = [`${__dirname}/../results/*.xml`]; - const options = { - onFileMatched: ({ filePath }) => { - console.log(`Merging: ${filePath}`); - } - }; + // Delete any existing reports before the run starts + on('before:run', () => { + console.log('Deleting old test result reports...'); - mergeFiles(outputFile, inputFiles, options).then(() => { - console.log(`Merged report generated at ${outputFile}`); - }).catch(e => { - console.error(e); + return new Promise((resolve, reject) => { + rimraf(reportFileGlob, err => { + if (err) { + console.error('Error while deleting old test result reports:', err); + reject(err); + } else { + console.log('Deleted old test result reports'); + resolve(); + } }); - } else { + }); + }); + + // Merge together junit reports from all spec files into single junit report + on('after:run', results => { + if (!results) { console.log('Skipping report merging (no test results)'); + return Promise.resolve(); } + + console.log('Merging test result reports...'); + + const options = { + onFileMatched: ({ filePath }) => { + console.log(`Merging: ${filePath}`); + } + }; + + return mergeFiles(combinedReportPath, [reportFileGlob], options).then(() => { + console.log(`Merged report generated at ${combinedReportPath}`); + }).catch(e => { + console.error(e); + }); }); };