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

Jer*_*yow 20 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++;
  // });

});
Run Code Online (Sandbox Code Playgroud)

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

小智 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个测试终于通过了.

  • 现在这不是默认值,正如@Anton所说,Jasmine 3.x现在默认以随机顺序运行测试. (6认同)
  • 那么有没有办法在3.x中关闭它? (4认同)

Ant*_*ton 11

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

参考文献: