如何以编程方式跳过量角器测试?

时间:2018-07-31 12:01:02

标签: angular protractor automated-tests

如果某些条件为真/假,我可以以某种方式跳过量角器测试用例吗? 尝试使用

        pending('skipped');
        expect(true).toBe(true);

但是将其标记为失败

更新 查找如何将测试用例添加到“待定” 准备中

      var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
  SpecReporter.prototype.specDone = function (spec) {
    this.metrics.stopSpec(spec);
    var pending = false;
    for(var i = 0; i < spec.failedExpectations.length; i++) {
      if ( spec.failedExpectations[i].message.toLowerCase().indexOf('pending') >= 0) pending = true;
    }
    if (spec.status === 'pending' || pending) {
      this.metrics.pendingSpecs++;
      this.display.pending(spec);
    } else if (spec.status === 'passed') {
      this.metrics.successfulSpecs++;
      this.display.successful(spec);
    } else if (spec.status === 'failed') {
      this.metrics.failedSpecs++;
      this.display.failed(spec);
    }
  };

然后在测试用例上,您可以使用pending();

it(test some elements, function(){
 if(some conditions) {pending()}
} else {test elements}

随后,您可以使用待处理的标签来操作测试报告。

也许不是最好的例子,但现在对我有用。

1 个答案:

答案 0 :(得分:1)

我认为您最好的选择是创建一个需要特定参数的序列,例如:

export class Sequence {
  static performAfterCondition(conditionToMeet) {
    if (conditionToMeet){
       describe(`conditionTrueTests`, () => {
          it(`Test 1`, async () => {
            expect(await true).toBe(true);
          });

          it(`Test 2`, async () => {
            expect(await true).toBe(true);
          });
       });
    }else{
       describe(`conditionFalseTests`, () => {
          it(`Test 1`, async () => {
            expect(await false).toBe(false);
          });

          it(`Test 2`, async () => {
            expect(await false).toBe(false);
          });
       });
    }
  }
}

并在您的规范文件中调用它,例如:

describe('calltests', () => {
        Sequence.performAfterCondition(condition);
});