UNPKG

atool-test

Version:

Unit testing tool based on dora & mocha & webpack

84 lines (64 loc) 3.05 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (config) { var _this = this; (0, _dora2.default)((0, _objectAssign2.default)({}, config, { plugins: [(0, _path.join)(__dirname, './build?chai=' + config.chai + '&coverage=' + config.coverage + '&config=' + config.config), (0, _path.join)(__dirname, './rewrite')] }), function () { var url = 'http://127.0.0.1:' + config.port + '/tests/runner.html'; var mochaPhantomBin = (0, _path.join)(__dirname, '../node_modules/.bin/mocha-phantomjs'); if (!_fs2.default.existsSync(mochaPhantomBin)) { mochaPhantomBin = (0, _path.join)(require.resolve('mocha-phantomjs'), '../../../.bin/mocha-phantomjs'); } var cmds = []; var mochaPhantomOpts = config.args.join(' '); if (config.coverage) { var hook = (0, _path.join)(__dirname, './coverageHook.js'); cmds.push([mochaPhantomBin + ' --ignore-resource-errors ' + mochaPhantomOpts + ' ' + url + '?cov --hooks ' + hook]); var istanbulBin = require.resolve('istanbul/lib/cli.js'); cmds.push('node ' + istanbulBin + ' report lcov json-summary --include coverage/coverage.json'); } else { cmds.push([mochaPhantomBin + ' ' + mochaPhantomOpts + ' --ignore-resource-errors ' + url]); } _exeq2.default.apply(_this, cmds).then(function () { console.log(); if (config.keep) { console.log((0, _chalk.yellow)(' Testing on http://127.0.0.1:' + config.port + '/tests/runner.html')); } if (config.coverage) { var summaryFile = (0, _path.join)(cwd, 'coverage/coverage-summary.json'); if (_fs2.default.existsSync(summaryFile)) { console.log(); var covJSON = require(summaryFile); for (var file in covJSON) { if (covJSON.hasOwnProperty(file)) { console.log(' ' + _path2.default.relative(process.cwd(), file) + ': ' + (0, _chalk.green)(covJSON[file].lines.pct + '% ') + (0, _chalk.gray)('coverage ') + (0, _chalk.green)(covJSON[file].lines.covered.toString()) + (0, _chalk.gray)(' lines covered ')); } } console.log(); console.log((0, _chalk.cyan)(' You can see more detail in coverage/lcov-report/index.html')); console.log(); } } if (!config.keep) process.exit(0); }).catch(function (err) { if (!config.keep) process.exit(err.code); }); }); }; var _objectAssign = require('object-assign'); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _dora = require('dora'); var _dora2 = _interopRequireDefault(_dora); var _exeq = require('exeq'); var _exeq2 = _interopRequireDefault(_exeq); var _chalk = require('chalk'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var cwd = process.cwd(); module.exports = exports['default'];