【问题标题】:Stop spec after specific errors在特定错误后停止规范
【发布时间】:2016-05-27 13:37:04
【问题描述】:

我使用 Protractor 进行 e2e 测试。而且我尝试在特定错误之后停止测试执行(不是全部,不仅是在第一个错误之后(如快速失败))。 我尝试使用承诺、流程等。 如果我写: process.exit(1) 它可以工作,但是套件中的所有规范都没有启动。 也许有人知道我可以如何停止当前规范(特定错误后的描述步骤)?

我的想法是在 .waitReady() 方法中使用它:

waitReady = function(opt_optStr) {
  var self = this;
  var driverWaitIterations = 0;
  var lastWebdriverError;
  function throwError() {

   //STOP EXECUTING!!

    throw new Error("Expected '" + self.locator().toString() +
            "' to be present and visible. " +
            "After " + driverWaitIterations + " driverWaitIterations. " +
            "Last webdriver error: " + lastWebdriverError);
  }

  function isPresentError(err) {
    lastWebdriverError = (err != null) ? err.toString() : err;

    //STOP EXECUTING!!

    return false;
  }

  return browser.driver.wait(function() {
    driverWaitIterations++;
    if (opt_optStr === 'withRefresh' && driverWaitIterations > 7) {
      refreshPage();
    }
    return self.isPresent().then(function(present) {
      if (present) {
        return self.isDisplayed().then(function(visible) {
          lastWebdriverError = 'visible:' + visible;
          return visible;
        }, isPresentError);
      } else {
        lastWebdriverError = 'present:' + present;
        return false;
      }
    }, isPresentError);
  }, 10000).then(function(waitResult) {
    if (!waitResult) {
      throwError();
    }
    return waitResult;
  }, function(err) {
    isPresentError(err);
    throwError();
    return false;
  });
};

【问题讨论】:

    标签: javascript jasmine protractor angularjs-e2e


    【解决方案1】:

    别忘了!

    似乎这些库之一可能会有所帮助 - https://github.com/Updater/jasmine-fail-fast https://github.com/F1LT3R/protractor-jasmine2-fail-whale

    他们基于 jasmine 2 记者。

    【讨论】:

      猜你喜欢
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多