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?
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:
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.
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
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
}
}
}
}