const Mocha = require('mocha'); const fs = require('fs-plus'); const { assert } = require('chai'); module.exports = function(testPaths) { global.assert = assert; let reporterOptions = { reporterEnabled: 'list' }; if (process.env.TEST_JUNIT_XML_PATH) { reporterOptions = { reporterEnabled: 'list, mocha-junit-reporter', mochaJunitReporterReporterOptions: { mochaFile: process.env.TEST_JUNIT_XML_PATH } }; } const mocha = new Mocha({ reporter: 'mocha-multi-reporters', reporterOptions }); for (let testPath of testPaths) { if (fs.isDirectorySync(testPath)) { for (let testFilePath of fs.listTreeSync(testPath)) { if (/\.test\.(coffee|js)$/.test(testFilePath)) { mocha.addFile(testFilePath); } } } else { mocha.addFile(testPath); } } mocha.run(failures => { if (failures === 0) { process.exit(0); } else { process.exit(1); } }); };