diff --git a/README.md b/README.md index 56f7ce2..8163dbc 100644 --- a/README.md +++ b/README.md @@ -443,7 +443,8 @@ Example config: "proxyCaptureHeaders": true, "proxyCaptureContent": false, "detailedTestLog": false, - "enableScreenshotReports": false, + "enableScreenshotReports": false, + "truncateLogsFileName": false, "extendedPageReadyStateValidation": true, "pollingRate": 100 } diff --git a/src/bin/xsolve_wtf.js b/src/bin/xsolve_wtf.js index 85618d6..faff872 100644 --- a/src/bin/xsolve_wtf.js +++ b/src/bin/xsolve_wtf.js @@ -61,6 +61,7 @@ const configSchema = Joi.object().keys({ proxyCaptureContent: Joi.boolean().required(), detailedTestLog: Joi.boolean().required(), enableScreenshotReports: Joi.boolean().required(), + truncateLogsFileName: Joi.boolean().required(), extendedPageReadyStateValidation: Joi.boolean().required(), pollingRate: Joi.number().integer().required(), user: Joi.object().optional(), diff --git a/src/src/hooks.js b/src/src/hooks.js index 6548720..5a73dd6 100644 --- a/src/src/hooks.js +++ b/src/src/hooks.js @@ -96,6 +96,8 @@ defineSupportCode(function({After, Before}) { let featureName = scenario.scenario.feature.name; let scenarioName = scenario.scenario.name; logFileName = `${ world.getCurrentDate() }__${ featureName }-${ scenarioName }`; + if(config.truncateLogsFileName) + logFileName = truncate(logFileName, 100); callback(); }); @@ -134,10 +136,17 @@ defineSupportCode(function({registerHandler}) { let scenarioName = afterStepData.scenario.name; let stepName = afterStepData.name; let screenshotReportFileName = `${ world.getCurrentDate() }__${ featureName }-${ scenarioName }-${ stepName }`; + if(config.truncateLogsFileName) + screenshotReportFileName = truncate(screenshotReportFileName, 100); + world.takeScreenshot(screenshotReportFileName, screenshotReportsDir); }); }); +function truncate(str, n){ + return (str.length > n) ? str.substr(0, n-3) + '...' : str; +}; + function createLogDirs(logsDir, screenshotReportsDir) { if(!fs.existsSync(logsDir)) { fs.mkdirSync(logsDir);