Skip to content

Commit

Permalink
fix: should exit when no test files found
Browse files Browse the repository at this point in the history
  • Loading branch information
atian25 committed Jun 29, 2018
1 parent 4420c63 commit 9453db2
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 5 deletions.
5 changes: 4 additions & 1 deletion lib/cmd/cov.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ class CovCommand extends Command {

// save coverage-xxxx.json to $PWD/coverage
const covArgs = this.getCovArgs(context);
if (!covArgs) return;
debug('covArgs: %j', covArgs);
yield this.helper.forkNode(nycCli, covArgs, opt);
}
Expand Down Expand Up @@ -120,7 +121,9 @@ class CovCommand extends Command {
covArgs.push(exclude);
}
covArgs.push(require.resolve('mocha/bin/_mocha'));
covArgs = covArgs.concat(this.formatTestArgs(context));
const testArgs = this.formatTestArgs(context);
if (!testArgs) return;
covArgs = covArgs.concat(testArgs);
return covArgs;
}
}
Expand Down
15 changes: 11 additions & 4 deletions lib/cmd/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ class TestCommand extends Command {
};
const mochaFile = require.resolve('mocha/bin/_mocha');
const testArgs = this.formatTestArgs(context);
if (!testArgs) return;
debug('run test: %s %s', mochaFile, testArgs.join(' '));
yield this.helper.forkNode(mochaFile, testArgs, opt);
}
Expand Down Expand Up @@ -95,15 +96,21 @@ class TestCommand extends Command {
testArgv.require = requireArr;

// collect test files
let files = testArgv._.slice();
if (!files.length) {
files = [ process.env.TESTS || `test/**/*.test.${testArgv.typescript ? 'ts' : 'js'}` ];
let pattern = testArgv._.slice();
if (!pattern.length) {
pattern = [ process.env.TESTS || `test/**/*.test.${testArgv.typescript ? 'ts' : 'js'}` ];
}
pattern = pattern.concat([ '!test/fixtures', '!test/node_modules' ]);

// expand glob and skip node_modules and fixtures
files = globby.sync(files.concat([ '!test/fixtures', '!test/node_modules' ]));
const files = globby.sync(pattern);
files.sort();

if (files.length === 0) {
console.log(`No test files found with ${pattern}`);
return;
}

// auto add setup file as the first test file
const setupFile = path.join(process.cwd(), 'test/.setup.js');
if (fs.existsSync(setupFile)) {
Expand Down
17 changes: 17 additions & 0 deletions test/lib/cmd/cov.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,23 @@ describe('test/lib/cmd/cov.test.js', () => {
if (!process.env.NYC_ROOT_ID) assertCoverage(cwd);
});

it('should exit when not test files', function* () {
mm(process.env, 'TESTS', 'test/**/*.nth.js');
mm(process.env, 'NYC_CWD', cwd);
const child = coffee.fork(eggBin, [ 'cov' ], { cwd })
// .debug()
.expect('stdout', /No test files found/)

// only test on npm run test
if (!process.env.NYC_ROOT_ID) {
child.expect('stdout', /Statements {3}: 80% \( 4[\/|\\]5 \)/);
}

yield child.expect('code', 0).end();
// only test on npm run test
if (!process.env.NYC_ROOT_ID) assertCoverage(cwd);
});

it('should hotfixSpawnWrap success on mock windows', function* () {
mm(process.env, 'TESTS', 'test/**/*.test.js');
mm(process.env, 'NYC_CWD', cwd);
Expand Down
9 changes: 9 additions & 0 deletions test/lib/cmd/test.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,15 @@ describe('test/lib/cmd/test.test.js', () => {
.end(done);
});

it('should exit when not test files', done => {
mm(process.env, 'TESTS', 'test/**/*.noth.js');
coffee.fork(eggBin, [ 'test' ], { cwd })
// .debug()
.expect('stdout', /No test files found/)
.expect('code', 0)
.end(done);
});

it('should use process.env.TEST_REPORTER', done => {
mm(process.env, 'TESTS', 'test/**/*.test.js');
mm(process.env, 'TEST_REPORTER', 'json');
Expand Down

0 comments on commit 9453db2

Please sign in to comment.