将当前测试标记为已跳过而不是失败

问题描述 投票:0回答:2

我有一个测试,通过一个过程来到达实际测试的部分。我们遇到其中一个设置步骤/状态可能不正确执行测试的情况。在那种情况下,我想跳过当前的测试,但不会失败。即我的报价清单是空的,所以我无法点击报价继续“订购报价”流程。

我不想让测试失败,但我确实需要注意,此测试目前无法完成。

请注意,这与将模块标记为@disabled或使用''技巧跳过单个测试不同。这是开始测试,确定无法在当前状态下测试的情况,并使用Skipped标志而不是pass / fail退出当前测试。

(问题源于页面的状态来自第三方数据,这些数据不容易被嘲笑。报价必须存在并且可以由登台ERP处理以进行E2E测试......)

nightwatch.js
2个回答
1
投票

您可以将相关测试用例放在同一个测试文件中,并在nightwatch配置文件中使用skip_testcases_on_fail: true

在这种情况下,您将首先检查引号列表的测试,然后将其余视图。

module.exports = {
  'checkQuoteList case': function(browser) {
    ......
  },

  'clickQuote case': function(browser) {
    ........
  }
};

0
投票

我找到了解决这个问题的一种方法,但我认为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”类。

这确实可以处理跳过实际测试的迫切需要,但现在我必须监视输出以查看消息,而不是查找“跳过”通知。就报告而言,这是一次成功的测试。所以仍然不是100%。我想,这就是Statos Ion的方法胜出的地方。

© www.soinside.com 2019 - 2024. All rights reserved.