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
}
},
},
})