diff --git a/lib/workers.js b/lib/workers.js index 057d13b0d..e36a1509c 100644 --- a/lib/workers.js +++ b/lib/workers.js @@ -94,10 +94,31 @@ const createWorkerObjects = (testGroups, config, testRoot, options, selectedRuns }); } const workersToExecute = []; + + const currentOutputFolder = config.output; + let currentMochawesomeReportDir; + let currentMochaJunitReporterFile; + + if (config.mocha && config.mocha.reporterOptions) { + currentMochawesomeReportDir = config.mocha.reporterOptions?.mochawesome.options.reportDir; + currentMochaJunitReporterFile = config.mocha.reporterOptions['mocha-junit-reporter'].options.mochaFile; + } + collection.createRuns(selectedRuns, config).forEach((worker) => { - const workerName = worker.getOriginalName() || worker.getName(); + const separator = path.sep; + const _config = { ...config }; + let workerName = worker.name.replace(':', '_'); + _config.output = `${currentOutputFolder}${separator}${workerName}`; + if (config.mocha && config.mocha.reporterOptions) { + _config.mocha.reporterOptions.mochawesome.options.reportDir = `${currentMochawesomeReportDir}${separator}${workerName}`; + + const _tempArray = currentMochaJunitReporterFile.split(separator); + _tempArray.splice(_tempArray.findIndex(item => item.includes('.xml')), 0, workerName); + _config.mocha.reporterOptions['mocha-junit-reporter'].options.mochaFile = _tempArray.join(separator); + } + workerName = worker.getOriginalName() || worker.getName(); const workerConfig = worker.getConfig(); - workersToExecute.push(getOverridenConfig(workerName, workerConfig, config)); + workersToExecute.push(getOverridenConfig(workerName, workerConfig, _config)); }); const workers = []; let index = 0;