Skip to content

onStackTrace

  • 类型: (error: Error, frame: ParsedStack) => boolean | void

在处理错误时,对每个堆栈跟踪的每一帧应用过滤函数。这不适用于 printConsoleTrace 打印的堆栈跟踪。第一个参数 error 是一个 TestError

可用于过滤掉来自第三方库的堆栈跟踪帧。

TIP

堆栈跟踪的总大小通常也受到 V8 的 Error.stackTraceLimit 数字的限制。你可以在测试设置函数中将其设置为较高的值,以防止堆栈被截断。

ts
import type { ParsedStack, TestError } from 'vitest'
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    onStackTrace(error: TestError, { file }: ParsedStack): boolean | void {
      // 如果我们遇到 ReferenceError,显示整个堆栈。
      if (error.name === 'ReferenceError') {
        return
      }

      // 拒绝所有来自第三方库的帧。
      if (file.includes('node_modules')) {
        return false
      }
    },
  },
})

Released under the MIT License.