Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set execution order of mocha test cases in multiple files

I have two javascript files which contain mocha test cases.

//----------abc.js -------------  describe("abc file", function(){   it("test 1" , function(){     assert.equal(20 , 20);    }); });   //---------xyz.js-------------- describe("xyz file", function(){       it("test 1" , function(){         assert.equal(10 , 10);        });     }); 

I have put them in a folder called test and when I execute the mocha command the first file(abc.js) is always executed before xyz.js. I thought this might be due to alphabetical ordering and renamed the files as

abc.js => xyz.js xyz.js => abc.js 

but still, the content of the xyz.js (previously abc.js) is executed first. How can I change the execution order of these test files?

like image 719
tnishada Avatar asked Jan 30 '15 04:01

tnishada


People also ask

Do mocha tests run in order?

Mocha will run the tests in the order the describe calls execute.

How do I specify a test file in mocha?

The nice way to do this is to add a "test" npm script in package. json that calls mocha with the right arguments. This way your package. json also describes your test structure.

Does mocha run tests in parallel?

Mocha does not run individual tests in parallel. That means if you hand Mocha a single, lonely test file, it will spawn a single worker process, and that worker process will run the file. If you only have one test file, you'll be penalized for using parallel mode. Don't do that.


2 Answers

In the second file, require the first one:

--- two.js --- require("./one") 

Mocha will run the tests in the order the describe calls execute.

like image 94
Peter Lyons Avatar answered Oct 05 '22 23:10

Peter Lyons


I follow a totally seperate solution for this.

Put all your tests in a folder named test/ and Create a file tests.js in the root directory in the order of execution

--- tests.js --- require('./test/one.js') require('./test/two.js') require('./test/three.js') 

And in the tests files one.js, two.js and so on write your simple mocha tests

this way if you want to run them in the order you have defined then just run mocha tests.js

like image 37
Priyanshu Jindal Avatar answered Oct 06 '22 01:10

Priyanshu Jindal