Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
### 💰 Hva skal gjøres, og hvorfor? Favro: https://favro.com/organization/98c34fb974ce445eac854de0/1844bbac3b6605eacc8f5543?card=NAV-22720 Hensikten med endringene er analysere prosjektet med sonar med test coverage. I PRene skal man få en kommentar fra SonarCloud som sier hvilket (om noen) issue koden her, samt metrikker som test coverage og code duplications. Kommentar skal se ut som noe ala dette: <img width="919" alt="image" src="https://github.com/user-attachments/assets/e8f5751e-4f9c-4923-bbf9-53484d7de94a"> Obs! Er ingen ekspert på maven så dette er bare slik jeg har forstått det. Om noe er galt er det bare å si ifra. 😁 Siden vi ikke benytter av oss [Maven Failsafe Plugin](https://maven.apache.org/surefire/maven-failsafe-plugin/) for å kjøre integrasjonstester vil man ikke kunne kjøre JaCoCo på standard måte. Hadde vi benyttet oss av de kunne integrasjonstestene kjørt under `pre-integration-test`, `integration-test` og `post-integration-test` fasene. `jacoco-maven-plugin` forventer egentlig at dette skal skje, og har dermed blitt nødt til å legge til litt egendefinert logikk i denne PRen. [Maven Surefire Plugin](https://maven.apache.org/surefire/maven-surefire-plugin/) brukes per nå til å kjøre enhetstester, integrasjonstester, og verdikjedetester og bruker dermed `test` fasen. Siden vi også kjører enhetstester og integrasjonstester i forskjellige GHA jobber i `build-pr.yml` bestemte jeg meg for å benytte en egen JaCoCo maven profil hvor man kunne sende inn en egen `jacocoTestDirectory` variabel slik at det kunne gjenbrukes for både enhetstester og integrasjonstester. For enhetstester bruker man `-Pjacoco -DjacocoTestDirectory=UT`. For integrasjonstester bruker man `-Pjacoco -DjacocoTestDirectory=IT`. Se bilde under. Den egne maven profilen gjør også slik at JaCoCo er "opt-in". Siden enhetstestene og integrasjonstestene blir kjørt separat er det nødvendig å laste opp JaCoCo rapportene mellom hver jobb. Begge jobbene tilgjengeligjør rapportene som artifacter, se bilde under. De to artifactene blir lastet ned i Sonar jobben og brukt i analysen av koden. UT og IT jacoco directories: <img width="247" alt="image" src="https://github.com/user-attachments/assets/a8585053-4da4-4e44-ab12-33b1540b3d8a"> To artifacter: <img width="1083" alt="image" src="https://github.com/user-attachments/assets/efc1d52f-1bc6-4b9b-af65-a3874028df3b"> Har laget en egen `sonar.yml` GHA for merge inn til main. Den kjører enhetstester og integrasjonstester, lager en rapport for hver av dem, og deretter analyserer prosjektet med test coverage via Sonar. Siden testene ikke blir kjørt i `build-and-deploy-prod.yml` valgte jeg å ta det i en egen GHA fil for enkelhetens skyld. Jeg prøvde først å kjøre testene i `build-and-deploy-prod.yml` men fikk problemer med å kjøre enhetstester og integrasjonstester samtidig pga. `integration` taggen. Alternativt kunne man ha gjort slik som i `build-pr.yml` og kjørt enhetstster og integrasjonstester separat. Gikk til slutt for en egen `sonar.yml` fil da vi også hadde en egen `codeql.yml` fil. ### 🔎️ Er det noe spesielt du ønsker tilbakemelding om? Nei ### ✅ Checklist _Har du husket alle punktene i listen?_ - [ ] Jeg har testet mine endringer i henhold til akseptansekriteriene 🕵️ - [ ] Jeg har config- eller sql-endringer. I så fall, husk manuell deploy til miljø for å verifisere endringene. - [ ] Jeg har skrevet tester. Hvis du ikke har skrevet tester, beskriv hvorfor under 👇 _Jeg har ikke skrevet tester fordi:_ Ikke relevant. ### 💬 Ønsker du en muntlig gjennomgang? - [ ] Ja - [x] Nei
- Loading branch information