UNPKG

artes

Version:

The simplest way to automate UI and API tests using Cucumber-style steps.

74 lines (59 loc) 1.87 kB
const fs = require("fs"); const path = require("path"); const archiver = require("archiver"); const { spawnSync } = require("child_process"); const { moduleConfig } = require("../imports/commons"); const { reportCustomizer } = require("../../helper/controller/reportCustomizer"); function generateReport() { try { console.log("📊 Generating report..."); spawnSync( "allure", [ "generate", "--clean", `${process.env.SINGLE_FILE_REPORT == "true" ? "--single-file" : ""}`, "allure-result", "--output", moduleConfig.reportPath, ], { cwd: moduleConfig.modulePath, stdio: "ignore", shell: true, }, ); console.log( `📋 Report generated successfully in ${moduleConfig.reportPath}!`, ); reportCustomizer(); if (fs.existsSync(moduleConfig.reportPath) && process.env.ZIP === "true") { console.log(`🗜️ Zipping report folder...`); const zipPath = path.join( path.dirname(moduleConfig.reportPath), "report.zip", ); let done = false; let error = null; const output = fs.createWriteStream(zipPath); const archive = archiver("zip", { zlib: { level: 9 } }); output.on("close", () => { done = true; }); archive.on("error", (err) => { error = err; done = true; }); archive.pipe(output); archive.directory(moduleConfig.reportPath, false); archive.finalize(); require("deasync").loopWhile(() => !done); console.log(`🗜️ Zipped in ${path.join( path.dirname(moduleConfig.reportPath), "report.zip" )}!`); if (error) throw error; } } catch (err) { console.error("❌ Report generation failed:", err); process.env.EXIT_CODE = 1; } } module.exports = { generateReport };