DevOps-bootcamp · Les

Tests uitvoeren met GitHub Actions

Integreer geautomatiseerde unit- en integratietests in uw CI-pipeline om de codekwaliteit te waarborgen en regressies te voorkomen.

Les 2 van 411 stappen

Tests uitvoeren met GitHub Actions is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Waarom tests automatiseren in CI?

Stel je voor dat je een wijziging in je code maakt en meteen weet of je ergens anders iets hebt stukgemaakt. Dat is de kracht van geautomatiseerd testen in je CI-pijplijn!

Continue integratie (CI) draait om het regelmatig samenvoegen van codewijzigingen in een centrale opslagplaats. Geautomatiseerde tests bewaken dit proces.

Ze vinden fouten vroeg, geven snel feedback en zorgen bij elke codewijziging voor meer vertrouwen.

Soorten tests in je pijplijn

Wanneer we het over geautomatiseerde tests hebben, komen vaak twee hoofdtypen ter sprake: unit-tests en integratietests.

  • Unit-tests: richten zich op kleine, geïsoleerde delen van je code, zoals één functie of methode. Ze zijn snel en wijzen problemen nauwkeurig aan.
  • Integratietests: controleren of verschillende delen van je systeem goed samenwerken, bijvoorbeeld wanneer je code met een database of API communiceert.

Beide zijn belangrijk om ervoor te zorgen dat je software robuust en betrouwbaar is.

Tests automatiseren met GitHub Actions

GitHub Actions kan fungeren als je persoonlijke testrunner en je tests automatisch uitvoeren telkens wanneer je nieuwe code pusht.

Je definieert een werkstroom waarin staat wanneer deze moet worden uitgevoerd, welke omgeving moet worden gebruikt en welke opdrachten moeten worden uitgevoerd.

Zo wordt elke wijziging consistent gevalideerd, zonder handmatig werk.

Een Java-project voorbereiden op tests

Als voorbeeld gebruiken we een eenvoudig Java-project dat wordt beheerd met Maven, een populair hulpprogramma voor buildautomatisering.

Maven helpt bij het beheren van projectafhankelijkheden en biedt opdrachten om code te compileren en tests uit te voeren.

Ons project bevat een eenvoudige Java-klasse en een bijbehorende JUnit-test, conceptueel gezien.

Ons eerste uitvoerbare testvoorbeeld

Hier zie je een eenvoudige Java-klasse en een basistest om de werking ervan te controleren. Voor de eenvoud simuleren we een unit-test zonder een volledige JUnit-configuratie.

De main-methode fungeert als onze testrunner en controleert of de add-methode werkt zoals verwacht.

Probeer het programma uit te voeren om de uitvoer te bekijken!

public class Calculator {
  // Method to be tested
  public int add(int a, int b) {
    return a + b;
  }

  public static void main(String[] args) {
    Calculator calc = new Calculator();
    // Simulate a test case
    int expected = 5;
    int actual = calc.add(2, 3);

    if (actual == expected) {
      System.out.println("Test Passed: 2 + 3 = " + actual);
    } else {
      System.out.println("Test Failed: Expected " + expected + ", Got " + actual);
    }
  }
}

Je testwerkstroom bouwen

Laten we nu bekijken hoe een GitHub Actions-werkstroombestand (.github/workflows/test.yml) eruitziet om onze tests uit te voeren.

Dit YAML-bestand definieert de stappen die GitHub Actions uitvoert om de omgeving in te stellen en onze testopdrachten uit te voeren.

In een echt project gebruiken we de opdracht test van Maven om eventuele JUnit-tests uit te voeren.

name: Java CI with Maven

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: '17'
          distribution: 'temurin'
          cache: maven
      - name: Run Maven Tests
        run: mvn test

Elke stap van de werkstroom begrijpen

Laten we de belangrijkste stappen in onze testwerkstroom bespreken:

  • on: push / pull_request: start de werkstroom bij codepushes of pull-aanvragen naar de main-branch.
  • runs-on: ubuntu-latest: geeft het besturingssysteem op voor de virtuele machine (runner) waarop de werkstroom wordt uitgevoerd.
  • actions/checkout@v4: een vooraf gebouwde actie die de code van je opslagplaats uitcheckt op de runner.
  • actions/setup-java@v4: een andere actie om de Java Development Kit (JDK) op de runner in te stellen.
  • run: mvn test: dit is de cruciale stap! Deze voert de Maven-opdracht uit om je code te compileren en alle gedefinieerde tests uit te voeren.

Omgaan met mislukte tests in CI

Een belangrijk voordeel van testen in CI is directe feedback. Als een test mislukt, mislukt de taak van de GitHub Actions-werkstroom.

Dit geeft duidelijk aan dat de recente codewijziging een fout of regressie heeft veroorzaakt.

Je kunt vervolgens de werkstroomlogboeken bekijken om precies te bepalen welke test is mislukt en waarom. Zo kun je problemen snel oplossen.

De impact: kwaliteit en vertrouwen

Geautomatiseerde tests integreren in je CI-pijplijn is een hoeksteen van moderne softwareontwikkeling.

Dit voorkomt actief regressies, zorgt voor consistente codekwaliteit en verkleint het risico aanzienlijk dat defecte functies worden geïmplementeerd.

Dit proces geeft je vertrouwen in je codebasis, zodat je team sneller en betrouwbaarder kan innoveren.

Controle van de werkstroomtests

Bekijk een GitHub Actions-werkstroom die is ontworpen om tests uit te voeren. Wat is het belangrijkste doel van de stap run: mvn test in een Java-project?

Samenvatting: testen in je CI-pijplijn

In deze les hebben we onderzocht hoe je geautomatiseerde tests integreert in je GitHub Actions-CI-pijplijn.

We hebben behandeld:

  • Het belang van geautomatiseerd testen voor codekwaliteit.
  • Het verschil tussen unit-tests en integratietests.
  • Hoe je een GitHub Actions-werkstroom structureert om Java-tests met Maven uit te voeren.
  • Het begrijpen van werkstroomstappen zoals checkout en setup-java.
  • De cruciale rol van mvn test bij het uitvoeren van je tests.
  • Hoe GitHub Actions mislukte tests rapporteert.

Geautomatiseerd testen is cruciaal om fouten vroeg te vinden en een robuuste codebasis te behouden!

Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Tests uitvoeren met GitHub Actions” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Tests uitvoeren met GitHub Actions”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Tests uitvoeren met GitHub Actions”?

Integreer geautomatiseerde unit- en integratietests in uw CI-pipeline om de codekwaliteit te waarborgen en regressies te voorkomen. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Tests uitvoeren met GitHub Actions”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Triggers en events van workflows
  2. Tests uitvoeren met GitHub Actions
  3. Linting en controles van codekwaliteit
  4. Dependencies cachen voor snellere builds
← Terug naar DevOps-bootcamp