出于我个人的原因,我想知道在运行一个笑话(或节点)进程时当前正在处理哪一行。
到目前为止,我的尝试都是围绕throw new Error().stack
进行的,但仅限于异步操作(即,一旦经过一个滴答声,它似乎就停留在at processTicksAndRejections (internal/process/task_queues.js:86:5)
上)。
例如,我知道expect
允许您扩展功能并访问配置文件,该文件包含一些元数据,例如当前正在运行的文件名。
对于同步操作,此方法工作正常,如果调用扩展操作,我可以解析堆栈并找到当前行。
这对于同步测试很好用:
# extendExpect.ts
expect.extend({
getProgress(obj: any) {
const stack = new Error().stack;
// Do something with stack, report progress, etc
}
}
# __tests__/someTest.ts
test("progress testing", () => {
// do stuff
expect({}).getProgress()
// do more stuff
expect({}).getProgress()
});
在处理异步函数/测试时,堆栈跟踪以at processTicksAndRejections (internal/process/task_queues.js:81:17)
结尾。
到目前为止,我仍未找到解决方法,不胜感激。
谢谢!