1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| npm install --save-dev mochawesome mochawesome-merge mochawesome-report-generator
const { defineConfig } = require("cypress"); const mochawesome = require("mochawesome");
module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { on("after:spec", (spec, results) => { if (results && results.video) { const hasResults = Array.isArray(results.results) && results.results.some(testResult => { return Array.isArray(testResult.passes) && testResult.passes.length > 0; }); if (!hasResults) { fs.unlinkSync(results.video); } } });
on( "before:browser:launch", (browser = {}, launchOptions) => { if ( browser.name === "chrome" || browser.name === "edge" ) { launchOptions.args.push("--disable-dev-shm-usage") } return launchOptions } )
on("after:run", (results) => { if (results) { const marge = require("mochawesome-merge") const generator = require("mochawesome-report-generator")
return marge.merge({ files: [ "cypress/reports/mochawesome/*.json" ] }).then( report => generator.create( report, { reportDir: "cypress/reports/mochawesome/" } ) ) } })
on("task", { log(message) { console.log(message) return null }, table(message) { console.table(message) return null }, }) }, reporter: "mochawesome", reporterOptions: { reportDir: "cypress/reports/mochawesome/", overwrite: false, html: true, json: true, }, }, });
npx cypress run
|