CI og testing - ScrumTeam2/MinVakt GitHub Wiki
Kontinuerlig integrasjon og testing
I dette prosjektet har vi satt Git for versjonskontroll, dette via tjenesten GitHub. Videre har vi koblet dette repositoriet til Travis CI, en tjeneste som automatisk bygger prosjektet etter nye commits.
Når vi har jobbet med prosjektet, har hvert medlem opprettet sine egne feature-brancher. I disse branchene skriver de kode til nye funksjoner, og tester som tilhører disse. Når en funksjon er klar for å legges inn sammen i master, opprettes det en pull request. Travis CI vil da automatisk bygge prosjektet i branchen, samt en prøve-merge av master og branchen. Hvis dette er vellykket, og alle testene i prosjektet kjører, kan branchen merges inn i master.
Denne metoden for å utvikle minsker sjansene for kodekonflikter (feil med merging), regresjonsfeil, og sikrer generelt at master-branchen alltid kompilerer og består alle enhetstester.
Testing
Vi bruker JUnit for enhetstesting, da dette rammeverket både er enkelt å bruke, og dekker våre behov. Vi har skrevet tester for alt vi mener er nødvendig i backend, noe som kan inspiseres på vår codecov.io-prosjektside. REST-ressursene og databasekoden er det viktigste fokuset i testene, men også hjelpeklasser og mye logikk testes. Det er ingen enhetstesting av frontend-kode, da vi etter undersøkelse besluttet å teste frontend manuelt.
JUnit-testene kan kjøres med kommandoen mvn test
i prosjektmappen.