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

时间:2018-02-28 22:32:52

标签: nightwatch.js

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

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

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

(问题源于页面的状态来自第三方数据,这些数据无法轻易模拟。报价必须存在并且可以通过升级ERP进行E2E测试......)

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分: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的方法胜出的地方。