茉莉花应该按照声明的顺序还是随机顺序执行规范?

Is jasmine supposed to execute specs in the order they are declared or in a random order?

取消评论最后的规范。一切都乱套了……为什么?

describe('test', function() {
  var index = 1;

  it('test 1', function() {
    expect(index).toBe(1);
    index++;
  });

  it('test 2', function() {
    expect(index).toBe(2);
    index++;
  });

  it('test 3', function() {
    expect(index).toBe(3);
    index++;
  });

  it('test 4', function() {
    expect(index).toBe(4);
    index++;
  });

  it('test 5', function() {
    expect(index).toBe(5);
    index++;
  });

  it('test 6', function() {
    expect(index).toBe(6);
    index++;
  });

  it('test 7', function() {
    expect(index).toBe(7);
    index++;
  });

  it('test 8', function() {
    expect(index).toBe(8);
    index++;
  });

  it('test 9', function() {
    expect(index).toBe(9);
    index++;
  });

  it('test 10', function() {
    expect(index).toBe(10);
    index++;
  });

  // it('test 11', function() {
  //   expect(index).toBe(11);
  //   index++;
  // });

});

感谢@PWKad 指出当有超过 10 个测试时会发生这种情况。

是的,Jasmine 按顺序执行规范 (it)。从 2.3.0 到 2.3.3 有超过 10 个规格的问题。我在 2.3.3 中遇到了同样的问题,这个问题在 2.3.4 中得到了修复。

https://github.com/jasmine/jasmine/issues/850

我刚刚用 2.3.4 代替了 2.3.3,我的 15 个测试终于通过了。

目前 (v2.x) Jasmine 运行s 测试按照定义的顺序进行。但是,有一个新的(2015 年 10 月)选项 运行 随机顺序的规格,默认情况下仍然关闭。根据项目负责人的说法,在 Jasmine 中 3.x 将被转换为默认值。

参考文献:

我现在是 2021 年,事实上,通过 npx jasmine init 的默认设置似乎默认设置了随机测试顺序。

肯定不是大多数开发人员所期望的。 (出乎我意料!)

到 运行 按照声明的顺序,进入你的 spec/support/jasmine.json 并设置:

"random": false