diff --git a/lib/cmd/cov.js b/lib/cmd/cov.js index cf3131f4..e123a005 100644 --- a/lib/cmd/cov.js +++ b/lib/cmd/cov.js @@ -67,6 +67,12 @@ class CovCommand extends Command { for (const exclude of excludes) { this.addExclude(exclude); } + if (context.argv.parallel) { + env.ENABLE_MOCHA_PARALLEL = 'true'; + } + if (context.argv.parallel && context.argv['auto-agent']) { + env.AUTO_AGENT = 'true'; + } const opt = { cwd, @@ -136,7 +142,8 @@ class CovCommand extends Command { } getTestCommandAndArgs() { - return [ require.resolve('mocha/bin/_mocha') ]; + const mochaFile = process.env.MOCHA_FILE || require.resolve('mocha/bin/_mocha'); + return [ mochaFile ]; } } diff --git a/test/fixtures/bin/fake_mocha.js b/test/fixtures/bin/fake_mocha.js old mode 100644 new mode 100755 index 87f8f813..314856fa --- a/test/fixtures/bin/fake_mocha.js +++ b/test/fixtures/bin/fake_mocha.js @@ -1,2 +1,4 @@ +#!/usr/bin/env node + console.log('env.AUTO_AGENT:', process.env.AUTO_AGENT); console.log('env.ENABLE_MOCHA_PARALLEL:', process.env.ENABLE_MOCHA_PARALLEL); diff --git a/test/lib/cmd/cov.test.js b/test/lib/cmd/cov.test.js index b60d28b0..ddfc0b21 100644 --- a/test/lib/cmd/cov.test.js +++ b/test/lib/cmd/cov.test.js @@ -185,4 +185,19 @@ describe('test/lib/cmd/cov.test.js', () => { .expect('stdout', /Statements/) .end(); }); + + it('env should work', async () => { + mm(process.env, 'TESTS', 'test/**/*.test.js'); + return coffee.fork(eggBin, [ 'cov', '--parallel' ], { + cwd: path.join(__dirname, '../../fixtures/test-demo-app'), + env: Object.assign({ + MOCHA_FILE: path.join(__dirname, '../../fixtures/bin/fake_mocha.js'), + }, process.env), + }) + // .debug() + .expect('stdout', /env\.AUTO_AGENT: true/) + .expect('stdout', /env\.ENABLE_MOCHA_PARALLEL: true/) + .expect('code', 0) + .end(); + }); });