Testing i praksis: JUnit, Mockito og integrasjonstester · leksjon

Integrering av tester i CI/CD

Konfigurer CI/CD-pipelines som automatisk kjører enhets-, integrasjons- og E2E-tester ved hver kodeinnsjekking.

Leksjon 2 av 411 trinn

Integrering av tester i CI/CD er en gratis leksjon i Testing i praksis: JUnit, Mockito og integrasjonstester på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Testing i praksis: JUnit, Mockito og integrasjonstester, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Testing i praksis: JUnit, Mockito og integrasjonstester inneholder totalt 4 leksjoner.

CI/CD og automatisert testing

Velkommen til integrering av tester i CI/CD! CI/CD står for Continuous Integration og Continuous Delivery/Deployment. Det er en praksis innen programvareutvikling der kodeendringer automatisk bygges, testes og distribueres.

Automatisert testing er grunnmuren i en vellykket CI/CD-pipeline. Den gir rask tilbakemelding og sikrer kvalitet gjennom hele utviklingsprosessen.

Fasene i CI/CD-pipelinen

En typisk CI/CD-pipeline består av flere faser, som ofte utløses av en kodeinnsjekking:

  • Bygg: Kompilering av kildekode til et kjørbart artefakt.
  • Test: Kjøring av automatiserte tester (enhets-, integrasjons- og E2E-tester) mot det bygde artefaktet.
  • Distribuer: Utgivelse av artefaktet til ulike miljøer (staging, produksjon).

Testfasen er avgjørende for å oppdage problemer tidlig.

Automatisering av testkjøring

I CI/CD kjøres ikke tester manuelt. I stedet konfigureres pipelinen til automatisk å starte prosjektets byggeverktøy (som Maven eller Gradle) for å kjøre alle definerte tester.

Denne automatiseringen sikrer ensartethet og fjerner menneskelige feil fra testprosessen, slik at ingen tester blir glemt.

Konfigurering av enhetstester i CI

Det er vanligvis enkelt å kjøre enhetstester i en CI-pipeline. CI-konfigurasjonen trenger bare å kalle kommandoen som kjører enhetstestene.

For Java-prosjekter som bruker Maven eller Gradle, innebærer dette ofte én enkelt kommando. Her er et konseptuelt eksempel:

stages:
  - build
  - test

unit_test_job:
  stage: test
  script:
    - mvn clean install # Builds and runs unit tests for Maven
    # - gradle test     # Or for Gradle

Håndtering av integrasjonstester i CI

Integrasjonstester krever ofte eksterne tjenester som databaser eller API-er. I CI kan du håndtere disse avhengighetene ved hjelp av:

  • Databaser i minnet: For rask og isolert testing (for eksempel H2 for Java).
  • Docker Compose: For å starte nødvendige tjenester (databaser, meldingskøer) sammen med applikasjonen.
  • Dedikerte testmiljøer: For mer komplekse scenarier, selv om dette kan gjøre CI tregere.

Ende-til-ende-tester i pipelinen

Ende-til-ende-tester (E2E-tester) simulerer brukerinteraksjoner med hele systemet. Det kan være komplekst, men verdifullt, å integrere dem i CI/CD.

Viktige hensyn:

  • Dedikert miljø: E2E-tester trenger ofte en distribuert instans av applikasjonen.
  • Hodeløse nettlesere: Verktøy som Playwright eller Selenium kan kjøre tester uten et synlig nettlesergrensesnitt, noe som gjør dem egnet for servere.
  • Parallell kjøring: Parallell kjøring av E2E-tester kan redusere kjøretiden betydelig.

Rask tilbakemelding: Bygg som mislykkes

Et grunnleggende prinsipp i CI/CD er «fail fast». Hvis en automatisert test (enhets-, integrasjons- eller E2E-test) mislykkes, bør CI/CD-pipelinen umiddelbart stoppe og markere bygget som mislykket.

Dette hindrer at feilaktig kode går videre i pipelinen, og varsler utviklere raskt om problemer slik at de kan løses raskt.

Analyse av testrapporter

CI/CD-systemer kjører ikke bare tester; de samler også inn og viser testresultater. Verktøy som JUnit sine XML-rapporter (for eksempel Surefire-/Failsafe-rapporter i Maven) tolkes av CI-serveren.

Disse rapportene gir en tydelig oversikt over:

  • Hvor mange tester som besto eller mislyktes.
  • Hvilke konkrete tester som mislyktes.
  • Hvor lang tid testkjøringen tok.

Disse dataene gjør det enklere å følge med på testenes tilstand og identifisere ustabile tester.

Beste praksis for CI-testing

For å få størst mulig effekt av tester i CI/CD:

  • Hold enhetstestene raske: De bør kjøre på få sekunder for å gi rask tilbakemelding.
  • Sørg for isolasjon: Tester bør ikke være avhengige av kjørerekkefølgen eller delt, muterbar tilstand.
  • Ensartede miljøer: CI-miljøene bør samsvare med produksjonsmiljøet så tett som mulig.
  • Tydelig rapportering: Konfigurer CI-verktøyet slik at testresultatene presenteres klart.

Kontroll av CI/CD-testintegrasjon

Det er grunnleggende for moderne programvareutvikling å integrere automatiserte tester i CI/CD-pipeliner. La oss kontrollere forståelsen Deres.

Oppsummering av automatisert kvalitetssikring

De har lært hvordan automatiserte tester integreres sømløst i CI/CD-pipeliner. Denne integrasjonen er avgjørende for å opprettholde høy kodekvalitet, sikre raske tilbakemeldinger og muliggjøre kontinuerlig levering med trygghet.

Ved å konfigurere pipelinen til å kjøre enhets-, integrasjons- og E2E-tester, og ved å stoppe raskt ved feil, bygger De en robust og pålitelig prosess for levering av programvare.

Gratis å komme i gang

Lær deg Testing i praksis: JUnit, Mockito og integrasjonstester med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Integrering av tester i CI/CD» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Testing i praksis: JUnit, Mockito og integrasjonstester, inkludert «Integrering av tester i CI/CD», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Testing i praksis: JUnit, Mockito og integrasjonstester inneholder totalt 4 leksjoner.

Hva lærer jeg i «Integrering av tester i CI/CD»?

Konfigurer CI/CD-pipelines som automatisk kjører enhets-, integrasjons- og E2E-tester ved hver kodeinnsjekking. Du øver på Testing i praksis: JUnit, Mockito og integrasjonstester med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Testing i praksis: JUnit, Mockito og integrasjonstester?

Ingen tidligere erfaring er nødvendig. Testing i praksis: JUnit, Mockito og integrasjonstester på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Integrering av tester i CI/CD»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Testing i praksis: JUnit, Mockito og integrasjonstester-leksjonen?

Ja. Alle Testing i praksis: JUnit, Mockito og integrasjonstester-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Bygging av rammeverk for testautomatisering
  2. Integrering av tester i CI/CD
  3. Testrapportering og måltall
  4. Deteksjon av flaky tester og parallell kjøring i CI
← Tilbake til Testing i praksis: JUnit, Mockito og integrasjonstester