Is jasmine supposed to execute specs in the order they are declared or in a random order?
Solution 1
Yes, Jasmine executes the specs (it) in order. There was an issue from 2.3.0 to 2.3.3 with more than 10 specs. I hit the same issue in 2.3.3, the issue is fixed in 2.3.4.
https://github.com/jasmine/jasmine/issues/850
I just used 2.3.4 in place of 2.3.3 and my 15 tests finally passed.
Solution 2
Currently (v2.x) Jasmine runs tests in the order they are defined. However, there is a new (Oct 2015) option to run specs in a random order, which is still off by default. According to the project owner, in Jasmine 3.x it will be converted to be the default.
References:
Solution 3
Here I am now in 2021, and indeed, the default setup via npx jasmine init
sets random test order by default it seems.
Surely not what most developers would expect. (Not what I expected!)
To run in declared order, go into your spec/support/jasmine.json
and set:
"random": false
Jeremy Danyow
Building docs.microsoft.com GitHub | Blog | Twitter
Updated on July 03, 2022Comments
-
Jeremy Danyow almost 2 years
un-comment the last spec. All hell breaks loose... why?
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++; // }); });
thanks to @PWKad for pointing out this happens when there are more than 10 tests.