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 CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för CI/CD med GitHub Actions och DevOps-pipelines, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i CI/CD med GitHub Actions och DevOps-pipelines 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 CI/CD med GitHub Actions och DevOps-pipelines 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
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Köra tester med GitHub Actions” gratis?
Ja – hela texten till ”Köra tester med GitHub Actions” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i CI/CD med GitHub Actions och DevOps-pipelines, kan Ni uppgradera till CoddyKit PRO. Kursen i CI/CD med GitHub Actions och DevOps-pipelines 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å CI/CD med GitHub Actions och DevOps-pipelines 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 CI/CD med GitHub Actions och DevOps-pipelines?
Du behöver inga förkunskaper. Utbildningen i CI/CD med GitHub Actions och DevOps-pipelines 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 CI/CD med GitHub Actions och DevOps-pipelines-lektionen?
Ja. Varje CI/CD med GitHub Actions och DevOps-pipelines-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