UNPKG

1.42 kBJavaScriptView Raw
1
2
3module.exports.writeStackTrace = function writeStackTrace(err) {
4 if(err && err.message && err.message.includes('SIGINT')) {
5 return; // no need to generate a log file for a sigint.
6 }
7 try {
8 const homedir = require('os-homedir')();
9 const fse = require('fs-extra');
10 const path = require('path');
11
12 fse.ensureDirSync(path.resolve(homedir, '.testim_logs'));
13 const logfilename = path.resolve(homedir, '.testim_logs', new Date().toISOString().replace(/:|\./g, '_') + '.log');
14 console.log('Oops :( The test runner has encountered an unexpected error. A complete log of this run can be found in:');
15 console.log(`\t${logfilename}`);
16
17 if (err && err.message && err.message.includes('Unable to compile TypeScript') && err.stack.includes('runner/src')
18 && process.argv.some(x => x.includes('player-require-path'))) {
19 const chalk = require('chalk');
20 console.log(chalk.red('Looks like you got a TypeScript compile error champ - but it\'s not a very good one because we use TypeScript in transpile-only mode'));
21 console.log(chalk.red(`change require('ts-node/register/transpile-only'); to require('ts-node/register'); for better errors`));
22 }
23
24 fse.writeFileSync(logfilename, err + "\n" + err.stack + "\n\n" + JSON.stringify(err, Object.getOwnPropertyNames(err), 2));
25 } catch (err) { }
26}
\No newline at end of file