diff --git a/lib/plugin/stepByStepReport.js b/lib/plugin/stepByStepReport.js index 2f397a06a..52fad61e5 100644 --- a/lib/plugin/stepByStepReport.js +++ b/lib/plugin/stepByStepReport.js @@ -112,11 +112,13 @@ module.exports = function (config) { }); event.dispatcher.on(event.test.failed, (test, err) => { + // BeforeSuite/AfterSuite don't have any access to the browser, hence it could not take screenshot. + if (test.ctx._runnable.title.includes('hook: BeforeSuite')) return; persist(test, err); }); event.dispatcher.on(event.all.result, () => { - if (!Object.keys(slides).length) return; + if (Object.keys(recordedTests).length === 0 || !Object.keys(slides).length) return; let links = ''; @@ -148,7 +150,7 @@ module.exports = function (config) { stepNum++; slides[fileName] = step; try { - await helper.saveScreenshot(path.relative(reportDir, path.join(dir, fileName)), config.fullPageScreenshots); + await helper.saveScreenshot(path.join(dir, fileName), config.fullPageScreenshots); } catch (err) { output.plugin(`Can't save step screenshot: ${err}`); error = err; diff --git a/lib/utils.js b/lib/utils.js index 4cfaeecb1..fc73a5afb 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -291,7 +291,7 @@ module.exports.screenshotOutputFolder = function (fileName) { const fileSep = path.sep; if (!fileName.includes(fileSep) || fileName.includes('record_')) { - return path.join(global.output_dir, fileName); + return path.resolve(global.output_dir, fileName); } return path.resolve(global.codecept_dir, fileName); };