How to execute only one test spec with angular-cli
You can test only specific file with the Angular CLI (the ng
command) like this:
ng test --main ./path/to/test.ts
Further docs are at https://angular.io/cli/test
Note that while this works for standalone library files, it will not work for angular components/services/etc. This is because angular files have dependencies on other files (namely src/test.ts
in Angular 7). Sadly the --main
flag doesn't take multiple arguments.
Each of your .spec.ts
file have all its tests grouped in describe
block like this:
describe('SomeComponent', () => {...}
You can easily run just this single block, by prefixing the describe
function name with f
:
fdescribe('SomeComponent', () => {...}
If you have such function, no other describe
blocks will run.
Btw. you can do similar thing with it
=> fit
and there is also a "blacklist" version - x
. So:
fdescribe
andfit
causes only functions marked this way to runxdescribe
andxit
causes all but functions marked this way to run
Configure test.ts
file inside src
folder:
const context = require.context('./', true, /\.spec\.ts$/);
Replace /\.spec\.ts$/
with the file name you want to test. For example: /app.component\.spec\.ts$/
This will run test only for app.component.spec.ts
.
This worked for me in every case:
ng test --include='**/dealer.service.spec.ts'
However, I usually got "TypeError: Cannot read property 'ngModule' of null" for this:
ng test --main src/app/services/dealer.service.spec.ts
Version of @angular/cli 10.0.4