Merge pull request #828 from embark-framework/features/coverage-option

Add --coverage option to tests
This commit is contained in:
Iuri Matias 2018-09-13 19:46:27 -04:00 committed by GitHub
commit 45d6d4358e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 2051 additions and 1887 deletions

View File

@ -266,13 +266,15 @@ class Cmd {
.command('test [file]')
.option('-n , --node [node]', __('Node to connect to (default: vm)'))
.option('-d , --gasDetails', __('When set, will print the gas cost for each contract deploy'))
.option('-c , --coverage', __('When set, will generate the coverage after the tests'))
.option('--locale [locale]', __('language to use (default: en)'))
.option('--loglevel [loglevel]', __('level of logging to display') + ' ["error", "warn", "info", "debug", "trace"]', /^(error|warn|info|debug|trace)$/i, 'warn')
.description(__('run tests'))
.action(function(file, options) {
checkDeps();
i18n.setOrDetectLocale(options.locale);
embark.runTests({file, loglevel: options.loglevel, gasDetails: options.gasDetails, node: options.node});
embark.runTests({file, loglevel: options.loglevel, gasDetails: options.gasDetails,
node: options.node, coverage: options.coverage});
});
}

View File

@ -11,6 +11,18 @@ function mkdirp() {
return fs.mkdirp.apply(fs.mkdirp, arguments);
}
function readdir() {
return fs.readdir.apply(fs.readdir, arguments);
}
function stat() {
return fs.stat.apply(fs.stat, arguments);
}
function remove() {
return fs.remove.apply(fs.remove, arguments);
}
function copy() {
return fs.copy.apply(fs.copy, arguments);
}
@ -106,6 +118,9 @@ function tmpDir() {
module.exports = {
mkdirpSync,
mkdirp,
readdir,
stat,
remove,
copy,
copySync,
move,

View File

@ -1,7 +1,8 @@
const async = require('async');
const fs = require('fs-extra');
const Mocha = require('mocha');
const path = require('path');
const {runCmd} = require('../utils/utils');
const fs = require('../core/fs');
const assert = require('assert');
const Test = require('./test');
const EmbarkSpec = require('./reporter');
@ -123,6 +124,24 @@ module.exports = {
eachCb();
});
}, next);
},
function runCoverage(next) {
if (!options.coverage) {
return next();
}
runCmd(`${fs.embarkPath('node_modules/.bin/istanbul')} report --root .embark --format html`,
{silent: false, exitOnError: false}, (err) => {
if (err) {
return next(err);
}
console.log(`Coverage report created. You can find it here: ${fs.dappPath('coverage/index.html')}\n`);
const opn = require('opn');
const _next = () => { next(); };
opn(fs.dappPath('coverage/index.html'), {wait: false})
.then(() => new Promise(resolve => setTimeout(resolve, 1000)))
.then(_next, _next);
});
}
], (err) => {
if (err) {

3897
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -58,6 +58,7 @@
"i18n": "^0.8.3",
"ipfs-api": "17.2.4",
"is-valid-domain": "0.0.5",
"istanbul": "^0.4.5",
"live-plugin-manager-git-fix": "^0.12.1",
"lodash.clonedeep": "^4.5.0",
"merge": "^1.2.0",