Completely removing tests from angular4

To build a new project without spec files:

ng new --skip-tests true projectname

You can then delete:

  • /e2e
  • test.ts
  • protractor.conf.js
  • karma.conf.js

and if you don't want to lint:

  • tslint.json

You can also reduce your package.json down to:

{
  "name": "projectname",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "core-js": "^2.4.1",
    "rxjs": "^5.1.0",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "@angular/cli": "1.0.4",
    "@angular/compiler-cli": "^4.0.0",
    "@types/node": "~6.0.60",
    "ts-node": "~2.0.0",
    "typescript": "~2.2.0"
  }
}

When generating new components and services you can append it with --spec false to skip test file generation.


For angular-cli > 6

you can configure your `angular.json on your root directory

"projects": {
    "hello-world-app": {
        "schematics": {
            "@schematics/angular:component": {
                "spec": false
            },
            "@schematics/angular:directive": {
                "spec": false
            },
            "@schematics/angular:modules": {
                "spec": false
            },
            "@schematics/angular:pipe": {
                "spec": false
            },
            "@schematics/angular:service": {
                "spec": false
            },
            "@schematics/angular:class": {
                "spec": false
            }
        }
    }
}

I would recommend not removing all the testing files just in case you want to come back to it in the future. You can however disable the cli from creating spec files in the .angular-cli.json

"defaults": {
    "styleExt": "less",
    "class": {
      "spec": false
    },
    "component": {
      "spec": false
    },
    "directive": {
      "spec": false
    },
    "module": {
      "spec": false
    },
    "pipe": {
      "spec": false
    },
    "service": {
      "spec": false
    }
  }

now whenever you use the cli to create a component, class, etc. (ng c) the spec file won't be added

Tags:

Angular