Completely removing tests from angular4

2020-05-31 05:40发布

问题:

I have built a really small application using angular4. I have the main app component, two subcomponents and one service. I feel like I dont need tests for such a small application and want to remove everything test related to make the project cleaner

So my question is what are all the files I can remove from my project that are related to testing? I already deleted the spec files under my components but what next? Can i delete the src/test.ts, src/tsconfig.spec.js, protractor.conf.js, karma.conf.js, etc? Do i have to modify some configurations if i do delete this?

Also on a side note does angular cli allow to create a new project without all this test related stuff?

回答1:

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.



回答2:

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



回答3:

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



标签: angular