茉莉是应该按照声明的顺序或以随机顺序执行规范吗?

时间:2015-05-05 11:25:37

标签: javascript unit-testing jasmine karma-jasmine

取消评论最后一个规格。一切都崩溃了......为什么?

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次测试时会发生这种情况。

3 个答案:

答案 0 :(得分:16)

是的,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项测试终于通过了。

答案 1 :(得分:10)

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

参考文献:

答案 2 :(得分:0)

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

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

要按声明的顺序运行,请进入您的 spec/support/jasmine.json 并设置:

"random": false