将当前测试标记为已跳过而不是失败
Mark the current test as skipped instead of failed
我有一个测试,它通过一个过程到达实际测试的部分。我们遇到这样一种情况,其中一个设置 steps/states 可能无法正确执行测试。在那种情况下,我想跳过当前测试,但不会失败。即我的报价列表是空的,所以我无法单击报价以继续 "Order a quote" 过程。
我不想考试不及格,但我需要注意一下,这个考试目前无法完成。
请注意,这不同于将模块标记为 @disabled 或使用 ''+ 技巧来跳过单个测试。这是开始测试,确定在当前状态下无法测试的情况,并以 Skipped 标志而不是 pass/fail 退出当前测试。
(问题源于无法轻易模拟的第 3 方数据派生的页面状态。报价必须存在并且可以由登台 ERP 处理以进行 E2E 测试...)
您可以将相关测试用例放在同一个测试文件中,并在您的 nightwatch 配置文件中使用 skip_testcases_on_fail: true
在这种情况下,您可以先检查引号列表,然后再检查其他测试。
module.exports = {
'checkQuoteList case': function(browser) {
......
},
'clickQuote case': function(browser) {
........
}
};
我找到了解决这个问题的方法,但我认为 Statos Ion 的回答可能是更好的方法。
我的代码解决方案是:
browser.element("css selector", mypage.elements.norecords.selector, function (res) {
if (res.status != 1) {
console.log("No quotes found. Testing skipped.")
}
else {
// ... proceed with the test ...
}
})
如果列表中没有引号,我会显示“.norecords”class。
这确实处理了跳过实际测试的直接需要,但现在我必须监视输出以查看消息,而不是寻找 "Skipped" 通知。就报告而言,这是一次成功的测试。所以仍然不是 100%。我认为这就是 Statos Ion 的方法胜出的地方。
我有一个测试,它通过一个过程到达实际测试的部分。我们遇到这样一种情况,其中一个设置 steps/states 可能无法正确执行测试。在那种情况下,我想跳过当前测试,但不会失败。即我的报价列表是空的,所以我无法单击报价以继续 "Order a quote" 过程。
我不想考试不及格,但我需要注意一下,这个考试目前无法完成。
请注意,这不同于将模块标记为 @disabled 或使用 ''+ 技巧来跳过单个测试。这是开始测试,确定在当前状态下无法测试的情况,并以 Skipped 标志而不是 pass/fail 退出当前测试。
(问题源于无法轻易模拟的第 3 方数据派生的页面状态。报价必须存在并且可以由登台 ERP 处理以进行 E2E 测试...)
您可以将相关测试用例放在同一个测试文件中,并在您的 nightwatch 配置文件中使用 skip_testcases_on_fail: true
在这种情况下,您可以先检查引号列表,然后再检查其他测试。
module.exports = {
'checkQuoteList case': function(browser) {
......
},
'clickQuote case': function(browser) {
........
}
};
我找到了解决这个问题的方法,但我认为 Statos Ion 的回答可能是更好的方法。
我的代码解决方案是:
browser.element("css selector", mypage.elements.norecords.selector, function (res) {
if (res.status != 1) {
console.log("No quotes found. Testing skipped.")
}
else {
// ... proceed with the test ...
}
})
如果列表中没有引号,我会显示“.norecords”class。
这确实处理了跳过实际测试的直接需要,但现在我必须监视输出以查看消息,而不是寻找 "Skipped" 通知。就报告而言,这是一次成功的测试。所以仍然不是 100%。我认为这就是 Statos Ion 的方法胜出的地方。