i ve recently migrated my Angular 6 app to Angular 7
my package.json looks like this :
{
"name": "myApp",
"version": "3.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --public-host http://localhost:4200/",
"build": "ng build --prod",
"serve": "ng serve --optimization=true --source-map=true --eval-source-map=true --live-reload=true --aot=false --vendor-chunk=true",
"build-prod": "node --max_old_space_size=5000 ./node_modules/.bin/ng build --configuration=production",
"build-localProd": "node --max_old_space_size=5000 ./node_modules/.bin/ng build --configuration=localProduction",
"build-dev": "node --max_old_space_size=7000 ./node_modules/.bin/ng build --configuration=development",
"test": "ng test --source-map=false --watch=false --code-coverage",
"test-headless": "ng test --browsers=ChromeHeadless --watch=false --code-coverage",
"doc": "compodoc -p src/tsconfig.app.json -s --port 8081",
"lint": "ng lint",
"e2e": "ng e2e",
"sonar-scanner": "node_modules/sonar-scanner/bin/sonar-scanner"
},
"private": true,
"dependencies": {
"@angular/animations": "^7.2.2",
"@angular/cdk": "7.2.2",
"@angular/common": "^7.2.2",
"@angular/compiler": "^7.2.2",
"@angular/core": "^7.2.2",
"@angular/flex-layout": "^7.0.0-beta.23",
"@angular/forms": "^7.2.2",
"@angular/http": "^7.2.2",
"@angular/material": "7.2.2",
"@angular/platform-browser": "^7.2.2",
"@angular/platform-browser-dynamic": "^7.2.2",
"@angular/platform-server": "^7.2.2",
"@angular/router": "^7.2.2",
"@auth0/angular-jwt": "2.1.0",
"@compodoc/compodoc": "^1.1.7",
"@types/bootstrap": "4.2.1",
"angular-user-idle": "^2.0.0",
"bootstrap": "4.2.1",
"classlist.js": "^1.1.20150312",
"core-js": "^2.6.3",
"devextreme": "^18.2.4",
"devextreme-angular": "^18.2.4",
"es5-shim": "^4.5.10",
"jquery": "^3.3.1",
"moment": "^2.18.1",
"ngx-bootstrap": "3.2.0",
"ngx-cookie-service": "2.1.0",
"ngx-device-detector": "1.3.5",
"ngx-logger": "3.3.11",
"ngx-spinner": "7.0.0",
"popper.js": "1.14.6",
"proxy-polyfill": "^0.1.7",
"rxjs": "^6.3.3",
"sha1": "^1.1.1",
"web-animations-js": "^2.3.1",
"zone.js": "^0.8.29"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.12.4",
"@angular/cli": "^7.2.3",
"@angular/compiler-cli": "^7.2.2",
"@angular/language-service": "^7.2.2",
"@types/jasmine": "^3.3.7",
"@types/jasminewd2": "~2.0.2",
"@types/jquery": "^3.3.1",
"@types/node": "^10.12.18",
"codelyzer": "^4.5.0",
"jasmine-core": "^3.3.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^4.0.0",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^2.0.0",
"karma-coverage-istanbul-reporter": "2.0.4",
"karma-jasmine": "^2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "^5.4.2",
"rxjs-tslint": "^0.1.6",
"sonar-scanner": "^3.1.0",
"ts-node": "~4.1.0",
"tslint": "^5.12.1",
"typescript": "^3.2.4"
}
}
Strangely when runnung : ng test --watch=false --code-coverage
The server keeps running and re-running the tests undefinitely , without stopping and without generating the coverage files .
this problem seems to be strange
Sugestions ??
You must tell the TestBed to perform data binding by calling fixture. detectChanges(). Delayed change detection is intentional and useful. It gives the tester an opportunity to inspect and change the state of the component before Angular initiates data binding and calls lifecycle hooks.
When it comes to the Angular world, Jasmine is the recommended testing framework. Angular CLI comes by default with Jasmine and Karma as the test runner. It generates test files at component creation, collects unit tests, runs karma, and displays results on a web page.
Karma is a task runner for our tests. It uses a configuration file in order to set the startup file, the reporters, the testing framework, the browser among other things. The rest of the dependencies are mainly reporters for our tests, tools to use karma and jasmine and browser launchers.
Isolated unit tests examine an instance of a class all by itself without any dependence on Angular or any injected values. The tester creates a test instance of the class with new , supplying test doubles for the constructor parameters as needed, and then probes the test instance API surface.
Try this command ng test -- --watch=false --code-coverage
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With