jasmine unit testing

Running specific test cases in Jasmine

I recently was working on writing end to end test cases using protractor on a project and everything was working fine until the number of test cases increased to a lot and running the complete set of test cases took too much time. It was a pain to even think of running the e2e command since I knew it would take 10 minutes at least to get to a specific test. I started searching for a way to run a specific test case and there were some solutions on Google and Stack Overflow which provided command line arguments while running the test cases but they weren’t working. And others mentioned some changes to configuration files which I could not do since I was using a CLI which had encapsulated all of those files.

But controlling which test case to execute was something I needed and I was not willing to comment out test cases which I did not want to run or delete other files. I found out a temporary workaround for running specific test cases in Jasmine. Instead of the tedious task of commenting test cases, all you need to do is add a character to your file/test cases!

Excluding specific test cases or specs

To exclude a specific test case or spec, all you need to do is use xit() or xdescribe() instead of it() and describe(). And that is it!

This means that the following test cases would get skipped during execution

xdescribe("test spec", function() {
    it("test case 1", function() {
    });
    it("test case 2", function() {
    });
});
describe("test spec", function() {
    xit("test case", function() {
    });
});

And the output in the terminal would read:

Executed 1 of 3 test cases (skipped 2) SUCCESS

This still might not be what you want and you explicitly want only one test case to run. Excluding multiple specs or test cases in multiple files can still be a tedious task in that case.

Running specific test cases in Jasmine

You can use fit() or fdescribe() instead of it() and describe() to achieve what is known as focussed test cases.

describe("test spec", function() {
    it("test case 1", function() {
    });
    fit("test case 2", function() {
    });
});

In the above example, only test case 2 would get executed. Multiple fit() calls can be used to run specific test cases as well. And that is how you make running specific test cases an easy thing. Hope this post helped you and let us know if you have any queries in the comment section below.