Tests uitvoeren met GitHub Actions
Integreer geautomatiseerde unit- en integratietests in uw CI-pipeline om de codekwaliteit te waarborgen en regressies te voorkomen.
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 demain-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
checkoutensetup-java. - De cruciale rol van
mvn testbij 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!
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
- Triggers en events van workflows
- Tests uitvoeren met GitHub Actions
- Linting en controles van codekwaliteit
- Dependencies cachen voor snellere builds