如何在量角器(typescript)中生成更具描述性的错误日志消息

如何在量角器(typescript)中生成更具描述性的错误日志消息,typescript,testing,error-handling,protractor,Typescript,Testing,Error Handling,Protractor,我们正在对一个生产网站运行量角器(用typescript编写)。有人知道在量角器测试失败时如何输出一些日志消息吗?我现在得到的基本上只是一条肯定/否定的信息,类似这样: 10) Query page accuracy test. Comparison of page data to data extracted from excel. Test begins... Message: Expected false to be truthy. Stack: Error: Fa

我们正在对一个生产网站运行量角器(用typescript编写)。有人知道在量角器测试失败时如何输出一些日志消息吗?我现在得到的基本上只是一条肯定/否定的信息,类似这样:

10) Query page accuracy test. Comparison of page data to data extracted from excel. Test begins...
  Message:
    Expected false to be truthy.
  Stack:
    Error: Failed expectation
        at C:\xampp\htdocs\kap\frontend\src\app\qa\qa.js:147:103
        at step (C:\xampp\htdocs\kap\frontend\src\app\qa\qa.js:33:23)
        at Object.next (C:\...
等等。 这是我们测试的一行:

expect(htmlValue == excelValue || (htmlValue === "0" && excelValue == "NaN")).toBeTruthy();

当测试失败时,如何添加更具描述性的消息?谢谢大家,我对量角器非常陌生,但我以前做过QA自动化测试。

你几乎可以在所有jasmine matchers中添加自定义消息,例如

expect(true)。toBe(true,“如果期望失败,将显示此消息”)


您可以在
ToBeTruthy
中添加如下描述:

expect(htmlValue == excelValue || (htmlValue === "0" && excelValue == "NaN")).toBeTruthy("description why I checked this")
如果您愿意,您可以如下显示失败的测试值:

10) Query page accuracy test. Comparison of page data to data extracted from excel. Test begins...
  Message:
    Expected false to be truthy.
  Stack:
    Error: Failed expectation
        at C:\xampp\htdocs\kap\frontend\src\app\qa\qa.js:147:103
        at step (C:\xampp\htdocs\kap\frontend\src\app\qa\qa.js:33:23)
        at Object.next (C:\...
expect(
htmlValue==excelValue | |(htmlValue=='0'&&excelValue=='NaN'),
)托贝特鲁斯先生(
`HTML不同于Excel.HTML:${htmlValue};Excel:${excelValue}`,
);
几乎所有jasmine
Matchers
都接受
ExpectationFailOut
参数:

toBe(预期:任何,预期失败输出?:任何):承诺;
toEqual(预期:有,预期失败输出?:有):承诺;
toMatch(应为:string | RegExp | Promise,expectationFailOutput?:any):Promise;
toBeDefined(expectationFailOutput?:any):承诺;
toBeUndefined(expectationFailOutput?:任何):承诺;
toBeNull(expectationFailOutput?:任意):承诺;
toBeTruthy(expectationFailOutput?:任何):承诺;
toBeFalsy(expectationFailOutput?:任何):承诺;
toContain(预期:任何,预期失败输出?:任何):承诺;
Toblessthan(预期:数字|承诺,预期失败输出?:任何):承诺;
toBeLessThanOrEqual(预期:数字|承诺,预期失败输出?:任何):承诺;
ToBegreateThan(预期:数字|承诺,预期失败输出?:任何):承诺;
toBeGreaterThanOrEqual(预期:数字|承诺,预期失败输出?:任何):承诺;
toBeCloseTo(预期:数字|承诺,精度?:任意,预期失败输出?:任意):承诺;

您将在

中找到Matchers定义,虽然建议的解决方案可能有效,但使用它们并不是一个好的做法,因为它需要更多的键入,而不需要可读的代码

默认框架正式支持的两个选项是Jasmine:

  • 对于量角器6+,可以使用内置方法 不幸的是,Jasmine团队没有提供太多文档。但是一般语法是
    expect(true).withContext(“您的描述”).toBe(false)
    并可用于任何Jasmine断言,而不仅仅是
    .toBeTruthy()

  • 对于小于6的量角器版本,当每个断言接受两个参数时,有一个未记录的特性—第一个参数是预期值,第二个参数是失败时的消息。比如说

  • expect(“第一个值”).toBe(“第二个值”,“某些值的验证”)

    导致失败,并显示以下消息


    -预期“第一个值”为“第二个值”,“验证某些值”。

    虽然此代码可能会解决问题,但如何以及为什么解决此问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。