在柏树中,because() 函数在哪里?
In cypress, where is the because() function?
使用 chai 断言编写 cypress 测试,我应该如何在测试输出中揭示断言背后的原因?我的测试输出清楚地描述了失败的地方,但是没有上下文信息,也没有简单的方法可以直接找到测试脚本中失败断言的行号。我错过了什么?
使用屏幕截图将回答您的问题。
Cypress 会在测试失败时默认生成屏幕截图(可以通过在配置中添加 "screenshotOnRunFailure":false
来关闭此行为)。这些屏幕截图可在此处找到:cypress/screenshots
屏幕截图捕获了测试 describe()
、it()
和失败的具体操作。如果断言失败,它甚至会提到预期的值和检索到的值。
屏幕截图中的这三个输出将为您提供测试中失败的确切位置。
您可以像这样向 expect(...).to...
式断言添加上下文:
expect(true).to.eq(true, 'should equal itself')
据我所知,没有办法向 .should()
风格的断言添加上下文。
好像什么都没提供,但是做起来真的很简单。这是一个 because()
自定义命令,它只是 将它的参数打印到命令日志 ,然后是 returns 上一个主题,因此您可以链接它。
// sby add context to ouput...
Cypress.Commands.add("because", { prevSubject: 'true'}, (subject, options) => {
Cypress.log({
message: options
});
return subject;
})
使用它...
cy.get("input#date").because("today is today").should("have.value", localToday);
这给了你...
我还是这个行业的新手,但我喜欢这个解决方案,因为它很流畅,提高了输出的清晰度,而且当出现问题时我可以更快地找到代码行。
使用 chai 断言编写 cypress 测试,我应该如何在测试输出中揭示断言背后的原因?我的测试输出清楚地描述了失败的地方,但是没有上下文信息,也没有简单的方法可以直接找到测试脚本中失败断言的行号。我错过了什么?
使用屏幕截图将回答您的问题。
Cypress 会在测试失败时默认生成屏幕截图(可以通过在配置中添加 "screenshotOnRunFailure":false
来关闭此行为)。这些屏幕截图可在此处找到:cypress/screenshots
屏幕截图捕获了测试 describe()
、it()
和失败的具体操作。如果断言失败,它甚至会提到预期的值和检索到的值。
屏幕截图中的这三个输出将为您提供测试中失败的确切位置。
您可以像这样向 expect(...).to...
式断言添加上下文:
expect(true).to.eq(true, 'should equal itself')
据我所知,没有办法向 .should()
风格的断言添加上下文。
好像什么都没提供,但是做起来真的很简单。这是一个 because()
自定义命令,它只是 将它的参数打印到命令日志 ,然后是 returns 上一个主题,因此您可以链接它。
// sby add context to ouput...
Cypress.Commands.add("because", { prevSubject: 'true'}, (subject, options) => {
Cypress.log({
message: options
});
return subject;
})
使用它...
cy.get("input#date").because("today is today").should("have.value", localToday);
这给了你...
我还是这个行业的新手,但我喜欢这个解决方案,因为它很流畅,提高了输出的清晰度,而且当出现问题时我可以更快地找到代码行。