获取错误/Assert行 Postman 出错

0sgqnhkj  于 2023-01-20  发布在  Postman
关注(0)|答案(1)|浏览(150)

因此,我在postman中遇到了一个Assert错误,错误如下所示:

There was an error in evaluating the test script:  AssertionError: expected undefined to be a string

但是我有300个关于这个API的Assert,并且实际上不可能确定哪个Assert实际上失败了,有没有办法让 Postman 显示引发assertionFail的行号?

rdlzhqv9

rdlzhqv91#

如果深入研究以下内容,有一种方法可以获得行号:How do you find out the caller function in JavaScript?
将Assert封装在一个非常大的try catch中,然后打印出catch中的堆栈。

  • 详情 *

在底部附加catch。类似这样:

try {
    // 300 asserts here

}catch (e) {
    console.log(e);
    console.log(`e.stack = ${e.stack}`);   
}

当PM点击Assert时,您将看到如下内容:

{type: "Error", name: "TypeError", message: "Cannot read property 'json' of undefined"}

e.stack = TypeError: Cannot read property 'json' of undefined
    at Object.eval (eval at exec (evalmachine.<anonymous>:58:1931768), <anonymous>:89:30)
    at u.exec (evalmachine.<anonymous>:58:1931803)
    at t.exports (evalmachine.<anonymous>:58:5743)
    at Object.<anonymous> (evalmachine.<anonymous>:58:7440)
    at evalmachine.<anonymous>:15:26
    at Array.forEach (<anonymous>)
    at Object.emit (evalmachine.<anonymous>:14:54)
    at evalmachine.<anonymous>:51:24
    at evalmachine.<anonymous>:5:21
    at evalmachine.<anonymous>:6:18

堆栈的顶部告诉您行号(从零开始):
在对象.eval处(在执行时的eval(evalmachine.:58:1931768),:89:30)
因此,在本例中,89在IDE中报告为88。顺便说一句,30实际上是被调用方法的列号。
附加项给予更长的跟踪,显示错误发生前调用的谱系,这在某些调试情况下可能很有用。

警告:这将导致第一个Assert错误中断任何进一步的测试。因此,请在完成后撤消此更改。

相关问题