added runner.exit(), runner does not process.exit() if have no errors