Nu rullar vi 😎 💯

Olika typer av testtäckning

  • Overall
  • Statements
  • Branches
  • Functions
  • Lines

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å 🤔

CI & CD

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
  • Integrera tidigt och ofta: merga din branch
  • Se till så att huvudbranchen alltid är grön
  • Skriv tester när du skriver koden/innan du skriver koden
  1. Vi vill automatisera testandet
  2. Vi vill testa på en miljö som alltid är densamma
  3. Vi vill vara flera som kan testa under samma villkor

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

https://travis-ci.org/

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