0Pricing
DevOps Bootcamp · Lezione

Eseguire test con GitHub Actions

Integri test unitari e di integrazione automatizzati nella pipeline CI per garantire la qualità del codice e prevenire regressioni.

Eseguire test con GitHub Actions è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Perché automatizzare i test nella CI?

Immagini di apportare una modifica al codice e di sapere immediatamente se ha causato problemi altrove. Questo è il potere dei test automatizzati nella pipeline CI!

La Continuous Integration (CI) consiste nell'unire frequentemente le modifiche al codice in un repository centrale. I test automatizzati sono i garanti di questo processo.

Rilevano i bug in anticipo, forniscono un feedback rapido e aumentano la fiducia in ogni modifica al codice.

Tipi di test nella pipeline

Quando si parla di test automatizzati, vengono spesso citati due tipi principali: unit test e integration test.

  • Unit test: si concentrano su piccole parti isolate del codice, come una singola funzione o un metodo. Sono veloci e individuano con precisione i problemi.
  • Integration test: verificano che le diverse parti del sistema funzionino correttamente insieme, ad esempio il codice che interagisce con un database o un'API.

Entrambi sono fondamentali per garantire che il software sia robusto e affidabile.

Automatizzare i test con GitHub Actions

GitHub Actions può fungere da test runner personale, eseguendo automaticamente i test ogni volta che invia nuovo codice.

Si definisce un workflow che specifica quando eseguirlo, quale ambiente usare e quali comandi eseguire.

In questo modo ogni modifica viene convalidata in modo coerente, senza interventi manuali.

Preparare un progetto Java per i test

Per la dimostrazione useremo un semplice progetto Java gestito con Maven, un diffuso strumento di automazione della compilazione.

Maven aiuta a gestire le dipendenze del progetto e fornisce comandi per compilare il codice ed eseguire i test.

Il progetto includerà una semplice classe Java e un test JUnit corrispondente, a livello concettuale.

Il nostro primo esempio di test eseguibile

Ecco una semplice classe Java e un test di base per verificarne il funzionamento. Per semplicità, simuleremo un unit test senza una configurazione completa di JUnit.

Il metodo main funge da test runner e verifica che il metodo add funzioni come previsto.

Provi a eseguirlo per vedere l'output!

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);
    }
  }
}

Creare il workflow di test

Ora vediamo come apparirebbe un file di workflow di GitHub Actions (.github/workflows/test.yml) per eseguire i nostri test.

Questo file YAML definisce i passaggi che GitHub Actions eseguirà per configurare l'ambiente ed eseguire i comandi di test.

In un progetto reale useremo il comando test di Maven per eseguire gli eventuali test JUnit.

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

Comprendere ogni passaggio del workflow

Analizziamo i passaggi principali del nostro workflow di test:

  • on: push / pull_request: attiva il workflow quando viene inviato del codice o viene creata una pull request per il branch main.
  • runs-on: ubuntu-latest: specifica il sistema operativo della macchina virtuale, il runner, in cui verrà eseguito il workflow.
  • actions/checkout@v4: è un'azione predefinita che estrae il codice del repository sul runner.
  • actions/setup-java@v4: è un'altra azione che configura il Java Development Kit (JDK) sul runner.
  • run: mvn test: è il passaggio fondamentale! Esegue il comando Maven per compilare il codice ed eseguire tutti i test definiti.

Gestire i test non riusciti nella CI

Un vantaggio fondamentale dei test nella CI è il feedback immediato. Se un test non riesce, il job del workflow di GitHub Actions fallisce.

Questo segnala chiaramente che la modifica recente al codice ha introdotto un bug o una regressione.

È quindi possibile esaminare i log del workflow per individuare esattamente quale test è fallito e perché, facilitando la risoluzione rapida dei problemi.

L'impatto: qualità e fiducia

Integrare i test automatizzati nella pipeline CI è un elemento fondamentale dello sviluppo software moderno.

Previene attivamente le regressioni, garantisce una qualità del codice uniforme e riduce significativamente il rischio di distribuire funzionalità non funzionanti.

Questo processo aumenta la fiducia nella base di codice e consente al team di innovare più rapidamente e con maggiore affidabilità.

Verifica del workflow di test

Consideri un workflow di GitHub Actions progettato per eseguire dei test. Qual è lo scopo principale del passaggio run: mvn test in un progetto Java?

Riepilogo: test nella pipeline CI

In questa lezione abbiamo visto come integrare i test automatizzati nella pipeline CI di GitHub Actions.

Abbiamo trattato:

  • L'importanza dei test automatizzati per la qualità del codice.
  • La differenza tra unit test e integration test.
  • Come strutturare un workflow di GitHub Actions per eseguire test Java usando Maven.
  • La funzione di passaggi del workflow come checkout e setup-java.
  • Il ruolo fondamentale di mvn test nell'esecuzione dei test.
  • Come GitHub Actions segnala i test non riusciti.

I test automatizzati sono fondamentali per individuare i bug in anticipo e mantenere una base di codice robusta!

Domande Frequenti

La lezione «Eseguire test con GitHub Actions» è gratuita?

Sì — il testo completo di «Eseguire test con GitHub Actions» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Eseguire test con GitHub Actions»?

Integri test unitari e di integrazione automatizzati nella pipeline CI per garantire la qualità del codice e prevenire regressioni. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Eseguire test con GitHub Actions»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Trigger ed eventi dei workflow
  2. Eseguire test con GitHub Actions
  3. Linting e controlli della qualità del codice
  4. Memorizzare le dipendenze nella cache per build più rapide
← Torna a DevOps Bootcamp