量角器测试可以随机顺序运行吗?

时间:2016-06-08 07:53:54

标签: angularjs unit-testing protractor

我试图在规范中强制执行量角器测试之间的独立性。 为了检测测试是否依赖于先前测试引入的状态,我想以随机顺序运行这些测试。

有没有办法告诉量角器测试的顺序可以随机化?

我找到了Jasmine at pivotaltracker

的功能请求

2 个答案:

答案 0 :(得分:8)

您可以通过在套件末尾对它们进行混洗来以随机顺序执行规范:

var shuffle = function (items) {
  var item, ii;      
  for(var i = 0; i < items.length; i++){
    ii = (Math.random() * items.length) | 0;
    item = items[i];
    items[i] = items[ii];
    items[ii] = item;
  }
}

describe('Suite', function() {

  it("should a", function () {
      console.log("execute a");
  });

  it("should b", function () {
      console.log("execute b");
  });

  it("should c", function () {
      console.log("execute c");
  });

  shuffle(this.children);    // shuffle the specs

});

答案 1 :(得分:4)

截至10/10/17,可以在protractor.conf.js JasmineNodeOpts中设置一个设置,以便在使用Jasmine时以半随机顺序运行规范,无需代码。

在protract.conf.js文件中添加以下json块:

  jasmineNodeOpts?: {
    ...
    /**
     * If true, run specs in semi-random order
     */
    random?: boolean,
    ...
  };

Source