diff --git a/lib/metaltest.js b/lib/metaltest.js index f4efed2..aec3d30 100644 --- a/lib/metaltest.js +++ b/lib/metaltest.js @@ -40,11 +40,11 @@ const metaltest = (title) => { } const runner = (name, fn) => { - suite.push({ name, fn }) + suite.push({ name, fn, at: getAt() }) } - runner.only = (name, fn) => { only.push({ name, fn }) } - runner.skip = (name, fn) => { skipped.push({ name, fn }) } + runner.only = (name, fn) => { only.push({ name, fn, at: getAt() }) } + runner.skip = (name, fn) => { skipped.push({ name, fn, at: getAt() }) } runner.before = (fn) => { before.push(fn) } runner.after = (fn) => { after.push(fn) } runner.end = (name, fn) => { end.push({ name, fn }) } diff --git a/lib/stackparser.js b/lib/stackparser.js index 7906e1c..ce07d5f 100644 --- a/lib/stackparser.js +++ b/lib/stackparser.js @@ -1,9 +1,13 @@ const regAssertParser = /(?.*?)\n+(?<diff>.*?)\n+(?<stacktrace> (?<where>at.*?file:\/\/(?<file>.*?):(?<line>\d+):(?<column>\d+)\)?)\n.*)/s +const regStack = /(?<=^ )at.*/gm + const stackParser = (stack) => { const m = stack.match(regAssertParser) - return m.groups + const stacks = stack.match(regStack) + + return { ...m.groups, stacks } } -export { stackParser } \ No newline at end of file +export { stackParser } diff --git a/reporter/showError.js b/reporter/showError.js index 0d1a688..1a65514 100644 --- a/reporter/showError.js +++ b/reporter/showError.js @@ -23,8 +23,11 @@ const prettyError = (test) => { if (stack.diff != '') log(chalk.white(stack.diff) + '\n') - if (stack.where != '') - log(chalk.gray(stack.where) + '\n') + // if (stack.where != '') + // log(chalk.gray(stack.where) + '\n') + + log(chalk.gray(test.at.summary) + '\n') + log(chalk.gray(stack.stacks.join('\n')) + '\n') } export { showError }