Running a single test file
I discovered that Jasmine allows you to prefix describe
and it
methods with an f
(for focus): fdescribe
and fit
. If you use either of these, Karma will only run the relevant tests. To focus the current file, you can just take the top level describe
and change it to fdescribe
. If you use Jasmine prior to version 2.1, the focusing keywords are: iit
and ddescribe
.
This example code runs just the first test:
// Jasmine versions >/=2.1 use 'fdescribe'; versions <2.1 use 'ddescribe'fdescribe('MySpec1', function () { it('should do something', function () { // ... });});describe('MyOtherSpec', function () { it('should do something else', function () { // ... });});
Here is the Jasmine documentation on Focusing Specs, and here is a related SO article that provides additional thoughtful solutions.
This can be achieved these days via the include
option.https://angular.io/cli/test#options
It's a glob match, so as an example:
ng test --include='**/someFolder/*.spec.ts'
I can't find it in the 8.1.0 release notes, but @Swoox mentions below this is a feature after cli version 8.1.0
. Thanks for figuring that out.
It's worth mentioning that you can disable particular test without commenting by xdescribe
and xit
xdescribe('Hello world', () => { xit('says hello', () => { expect(helloWorld()) .toEqual('Hello world!'); });});
And as somebody already said if you want to focus on some test then fdescribe
and fit
fdescribe('Hello world', () => { fit('says hello', () => { expect(helloWorld()) .toEqual('Hello world!'); });});