Köra tester med GitHub Actions
Integrera automatiserade enhets- och integrationstester i er CI-pipeline för att säkerställa kodkvalitet och förhindra regressioner.
Köra tester med GitHub Actions är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Varför automatisera tester i CI?
Föreställ er att ni gör en ändring i koden och omedelbart får veta om något annat har gått sönder. Det är kraften i automatiserade tester i er CI-pipeline!
Kontinuerlig integration (CI) handlar om att regelbundet sammanfoga kodändringar till ett centralt kodförråd. Automatiserade tester skyddar denna process.
De hittar fel tidigt, ger snabb återkoppling och skapar trygghet kring varje kodändring.
Testtyper i er pipeline
När man talar om automatiserade tester återkommer ofta två huvudtyper: enhetstester och integrationstester.
- Enhetstester: Fokuserar på små, isolerade delar av koden, till exempel en enskild funktion eller metod. De är snabba och pekar ut exakta problem.
- Integrationstester: Kontrollerar att olika delar av systemet fungerar korrekt tillsammans, till exempel när koden samverkar med en databas eller ett API.
Båda är avgörande för att säkerställa att programvaran är robust och tillförlitlig.
Automatisera tester med GitHub Actions
GitHub Actions kan fungera som er personliga testkörning och automatiskt köra testerna varje gång ni pushar ny kod.
Ni definierar ett arbetsflöde som anger när det ska köras, vilken miljö som ska användas och vilka kommandon som ska köras.
Detta säkerställer att varje ändring valideras konsekvent, utan manuellt arbete.
Förbereda ett Java-projekt för testning
Som demonstration använder vi ett enkelt Java-projekt som hanteras med Maven, ett populärt verktyg för byggautomatisering.
Maven hjälper till att hantera projektets beroenden och tillhandahåller kommandon för att kompilera kod och köra tester.
Vårt projekt kommer att innehålla en enkel Java-klass och ett motsvarande JUnit-test (konceptuellt).
Vårt första körbara testexempel
Här är en enkel Java-klass och ett grundläggande test för att kontrollera dess funktionalitet. Vi simulerar ett enhetstest utan en fullständig JUnit-konfiguration för enkelhetens skull.
Metoden main fungerar som vår testkörning och verifierar om metoden add fungerar som förväntat.
Prova att köra det för att se resultatet!
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);
}
}
}Bygga ert testarbetsflöde
Nu ska vi se hur en GitHub Actions-arbetsflödesfil (.github/workflows/test.yml) kan se ut för att köra våra tester.
Den här YAML-filen definierar de steg som GitHub Actions ska ta för att konfigurera miljön och köra testkommandona.
Vi använder Mavens test-kommando för att köra eventuella JUnit-tester i ett verkligt projekt.
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
Förstå varje steg i arbetsflödet
Låt oss gå igenom de viktigaste stegen i vårt testarbetsflöde:
on: push / pull_request: Utlöser arbetsflödet när kod pushas eller pull requests skickas till grenenmain.runs-on: ubuntu-latest: Anger operativsystemet för den virtuella maskin (runner) där arbetsflödet ska köras.actions/checkout@v4: En förbyggd action som checkar ut kodförrådet till runnern.actions/setup-java@v4: Ytterligare en action för att konfigurera Java Development Kit (JDK) på runnern.run: mvn test: Detta är det avgörande steget! Det kör Maven-kommandot för att kompilera koden och köra alla definierade tester.
Hantera testfel i CI
En viktig fördel med testning i CI är omedelbar återkoppling. Om något test misslyckas misslyckas även jobbet i GitHub Actions-arbetsflödet.
Detta visar tydligt att den senaste kodändringen har introducerat ett fel eller en regression.
Ni kan sedan granska arbetsflödets loggar för att exakt fastställa vilket test som misslyckades och varför, så att problemen kan åtgärdas snabbt.
Effekten: kvalitet och förtroende
Att integrera automatiserade tester i CI-pipelinen är en hörnsten i modern programvaruutveckling.
Det förebygger aktivt regressioner, säkerställer en jämn kodkvalitet och minskar avsevärt risken för att trasiga funktioner driftsätts.
Den här processen skapar förtroende för kodbasen och gör att teamet kan utveckla snabbare och mer tillförlitligt.
Kontroll: arbetsflödestest
Föreställ er ett GitHub Actions-arbetsflöde som är utformat för att köra tester. Vad är det huvudsakliga syftet med steget run: mvn test i ett Java-projekt?
Sammanfattning: testning i er CI-pipeline
I den här lektionen har vi gått igenom hur automatiserade tester integreras i GitHub Actions CI-pipeline.
Vi har behandlat:
- Vikten av automatiserade tester för kodkvaliteten.
- Skillnaden mellan enhets- och integrationstester.
- Hur ett GitHub Actions-arbetsflöde struktureras för att köra Java-tester med Maven.
- Förståelse av arbetsflödessteg som
checkoutochsetup-java. - Den avgörande rollen för
mvn testnär testerna körs. - Hur GitHub Actions rapporterar testfel.
Automatiserade tester är avgörande för att upptäcka fel tidigt och upprätthålla en robust kodbas!
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Köra tester med GitHub Actions” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Köra tester med GitHub Actions”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Köra tester med GitHub Actions”?
Integrera automatiserade enhets- och integrationstester i er CI-pipeline för att säkerställa kodkvalitet och förhindra regressioner. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Köra tester med GitHub Actions”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Utlösare och händelser i arbetsflöden
- Köra tester med GitHub Actions
- Lintning och kodkvalitetskontroller
- Cacha beroenden för snabbare byggen