1 |
|
2 |
|
3 | module.exports.writeStackTrace = function writeStackTrace(err) {
|
4 | if(err && err.message && err.message.includes('SIGINT')) {
|
5 | return;
|
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 |