Python Testing: PyTest e Coverage per Test-Driven Development

  • 17 Sep 2025
  • CODLAB Team
  • 2 min
  • 878

Introduzione

Il successo di un progetto software dipende non solo dalla sua funzionalità e prestazione ma anche dalla sua affidabilità e stabilità. In questo contesto, l'adozione di pratiche di Test-Driven Development (TDD) assistite da strumenti come PyTest e Coverage in Python diventa cruciale. Questo articolo fornisce una guida dettagliata su come implementare test efficaci e misurare la copertura del codice, garantendo così lo sviluppo di software di alta qualità.

Architettura e Setup Iniziale

Per iniziare, è essenziale configurare l'ambiente di sviluppo. Assicurati di avere Python e pip installati. Successivamente, installiamo PyTest e Coverage utilizzando pip:


# Installazione di PyTest
pip install pytest

# Installazione di Coverage
pip install coverage

Implementazione Dettagliata

Parte 1: Creazione di Test con PyTest

PyTest è uno dei framework di testing più popolari e potenti in Python. Per dimostrare il suo utilizzo, consideriamo un semplice modulo Python chiamato calculator.py che contiene funzioni base di una calcolatrice.


# calculator.py
def add(a, b):
    """Somma di due numeri."""
    return a + b

def subtract(a, b):
    """Sottrazione di due numeri."""
    return a - b

Per testare questo modulo, creiamo un file chiamato test_calculator.py e definiamo i nostri test utilizzando PyTest.


# test_calculator.py
import calculator

def test_add():
    assert calculator.add(2, 3) == 5, "La somma di 2 e 3 dovrebbe essere 5"

def test_subtract():
    assert calculator.subtract(5, 2) == 3, "La sottrazione di 5 per 2 dovrebbe essere 3"

Per eseguire questi test, apriamo il terminale e digitiamo:


pytest test_calculator.py

Parte 2: Misurazione della Copertura con Coverage

Dopo aver scritto e eseguito i test, è importante misurare la copertura del codice. Questo ci aiuta a identificare parti del codice non testate. Per fare ciò, utilizziamo il pacchetto Coverage.


# Eseguiamo i test con Coverage
coverage run -m pytest test_calculator.py

# Generiamo il report della copertura
coverage report

Il comando coverage report mostrerà una tabella con la percentuale di copertura per ogni file. Il nostro obiettivo è raggiungere il 100% di copertura, assicurando che ogni riga di codice sia eseguita almeno una volta durante i test.

Best Practices e Ottimizzazioni

  • Organizzazione dei Test: Mantieni i tuoi test ben organizzati in directory e nomina i file di test con un prefisso test_. Ciò facilita la loro identificazione e esecuzione con PyTest.
  • Test Parametrizzati: PyTest supporta la parametrizzazione, che permette di eseguire un test con diversi set di dati. Questo riduce la ridondanza del codice e aumenta la copertura dei test.

Conclusione

In conclusione, l'adozione di PyTest e Coverage in un approccio TDD consente di costruire software più robusto e affidabile. Attraverso test continui e misurazione della copertura, è possibile identificare e risolvere rapidamente errori, migliorando sia la qualità che la manutenibilità del codice. Iniziare con esempi semplici, come mostrato in questo articolo, pone le basi per pratiche di testing più avanzate e una cultura di sviluppo orientata alla qualità.

Condividi questo articolo

Commenti

Nessun commento ancora. Sii il primo a commentare!

Lascia un commento

Non sarà pubblicata

Articoli Correlati

Hai un progetto in mente?

Sviluppiamo software personalizzato e soluzioni KI. Iniziamo insieme il tuo prossimo progetto.

Primo colloquio gratuito