FYI, there were already 4 failing tests -- this patch didn't cause those.
Using substack/tape as an example, the test harness listens for process.exit before printing results, and conditionally calling process.exit() with a non zero exit code.
I noticed that with a failing tests, tape does not even print the results because the exit routine is hijacked:
At the moment, the processEnding function in cover.js causes the process to exit with an exit code of 0 (as long as istanbul has no errors with coverage). As a consequence, the tests are assumed to have finished without error. This means that generating coverage on travis (or any other CI server) requires running the test suite twice unless you want to get false positives.
Correct me if I'm wrong -- but removing this process.exit() call shouldn't affect any users unless their test suite hangs by itself.
FYI, there were already 4 failing tests -- this patch didn't cause those.
Using
substack/tape
as an example, the test harness listens forprocess.exit
before printing results, and conditionally callingprocess.exit()
with a non zero exit code.I noticed that with a failing tests,
tape
does not even print the results because the exit routine is hijacked:At the moment, the
processEnding
function incover.js
causes the process to exit with an exit code of0
(as long as istanbul has no errors with coverage). As a consequence, the tests are assumed to have finished without error. This means that generating coverage on travis (or any other CI server) requires running the test suite twice unless you want to get false positives.Correct me if I'm wrong -- but removing this
process.exit()
call shouldn't affect any users unless their test suite hangs by itself.