如何阻止量角器在失败时运行进一步的测试用例



如果测试用例在量角器中失败,是否有方法退出测试套件并停止执行进一步的测试用例?

jasmine测试框架的情况下,您不是第一个询问它的人。

首次故障后退出有相关的公开讨论/问题,--fail-fast选项:

  • 第一次故障时的保释
  • --故障快速选项
  • 请添加--故障快速支持

长话短说,这是一个悬而未决的问题,总有一天jasmine会内置该功能。目前,使用第三方jasmine-bail-fast模块。

除此之外,还有一个方便的realtimeFailure茉莉花设置。如果您将其设置为true,它不会使整个测试运行失败,但它会在发生错误后立即实时显示错误,这可能涵盖您的用例。在jasmineNodeOpts:中设置

exports.config = {
    seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
    ...
    jasmineNodeOpts: {
        realtimeFailure: true
    }
}

以下是我使用Jasmine 2和Protractor跳过第一次失败测试的解决方案。希望能有所帮助。

exports.config = {
    onPrepare: function () {
        //skip tests after first fail
        var specs = [];
        var orgSpecFilter = jasmine.getEnv().specFilter;
        jasmine.getEnv().specFilter = function (spec) {
            specs.push(spec);
            return orgSpecFilter(spec);
        };
        jasmine.getEnv().addReporter(new function () {
            this.specDone = function (result) {
                if (result.failedExpectations.length > 0) {
                    specs.forEach(function (spec) {
                        spec.disable()
                    });
                }
            };
        });
    }
};

jasmine-bail-fast在我的情况下不起作用。不确定是不是因为与我的其他报表插件有冲突。

万一有人遇到同样的问题。你可以试试量角器快速失败

import failFast from 'protractor-fail-fast';
exports.config = {
  // if import statement doesn't work, use this instead of import for older versions of node
  // plugins: [{
  //  package: 'protractor-fail-fast'
  // }],
  onPrepare: function() {
    jasmine.getEnv().addReporter(failFast.init());
  },
  afterLaunch: function() {
    failFast.clean(); 
  }  
}

对我来说效果非常好。

EDIT:在代码片段中添加了import语句,以反映项目快速失败的自述

您不需要所有这些第三方插件。使用本机process.exit()

代码示例:

it("test", function()
{
   ...
   if(isExit)
   {
      browser.driver.close().then(function()
      {
         process.exit(1);
      });
   }
});

利润。

相关内容

最新更新