-->

Angular 7 : ng test hangs , keeps running tests re

2020-08-17 22:24发布

问题:

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 ??

回答1:

Try this command ng test -- --watch=false --code-coverage



回答2:

I had a similar problem and what I discovered was that in Angular 7 they changed that when you run ng test without specifying a specific project it runs tests for all the projects you have inside your angular.json workspace file and not just the main application. Then it looks like it goes on indefinitely or there is a bug and it cycles the projects.

Try to run ng test <projectname> and see if you still get the same. For me this solved the issue.

Here is also a link to the official documentation that explains it in the description of the command.