0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · 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 CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines, passa a CoddyKit PRO. Il corso CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines?

Non è richiesta alcuna esperienza precedente. CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines?

Sì. Ogni lezione CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines