Olika typer av testtäckning
Testtäckning är ett bra sätt att upptäcka otestad kod
Sikta högt
100% testtäckning betyder inte att vi har testat alla use cases
Ju mer komprimerad kod vi skriver desto högre testtäckning kan vi få 🤔
Continous integration & Continous Deployment
Continuous integration (CI) is a practice where a team of developers integrate their code early and often to the main branch or code repository. The goal is to reduce the risk of seeing “integration hell” by waiting for the end of a project or a sprint to merge the work of all developers.https://www.atlassian.com/continuous-delivery/how-to-get-to-continuous-integration
Alla CI-tjänster gör samma sak
Kör din kod på en isolerad server
Du kan ställa in hela miljön i förväg
Samt deploya/launcha när testet går igenom
The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives.https://en.wikipedia.org/wiki/DevOps
Travis
Det som krävs är ett Travis-konto samt
en .travis.yml
-fil
language: node_js
node_js:
- 8
script:
- npm test
.travis.yml
ligger i root och definierar vilket script som ska köras och på vilken platform. Resten tar CI-tjänsten hand om
Travis bryr sig inte om testtäckning
Bara om alla tester lyckas eller inte
För att spara testtäckning behövs:
Installera coveralls
paketet
npm install --save-dev coveralls
Lägg till i .travis.yml
language: node_js
node_js:
- 8
script:
- yarn test --coverage && cat ./coverage/lcov.info | coveralls
Kör coverage och skickar infon till coveralls-paketet
language: node_js
node_js:
- 8
cache:
directories:
- node_modules
yarn: true
script:
- yarn build
- yarn test --coverage && cat ./coverage/lcov.info | coveralls
deploy:
provider: pages
skip_cleanup: true
github_token: $GITHUB_TOKEN
local-dir: build
on:
branch: master
Gruppövning
Skriva automatiserade tester med TDD
https://github.com/FEND16/javascript4/blob/master/bdd_tdd.md