👍 Voici un exemple plus complet pour bien montrer l’usage de pytest avec plusieurs fonctions et ce qui se passe si un test échoue.
pytesttest_algo.py# Fonctions Ă tester
def addition(a, b):
return a + b
def moyenne(liste):
return sum(liste) / len(liste)
def est_palindrome(mot):
mot = mot.lower()
return mot == mot[::-1]
# Tests
def test_addition():
assert addition(2, 3) == 5
assert addition(-2, 5) == 3
assert addition(0, 7) == 7
def test_moyenne():
assert moyenne([10, 20, 30]) == 20
assert moyenne([5, 15]) == 10
assert moyenne([42]) == 42
def test_palindrome():
assert est_palindrome("radar") == True
assert est_palindrome("kayak") == True
assert est_palindrome("python") == False
Dans ton terminal :
pytest test_algo.py
Résultat attendu :
==================== test session starts ====================
collected 3 items
test_algo.py ... [100%]
===================== 3 passed in 0.01s =====================
Le ... signifie que les 3 fonctions de test ont réussi.
Supposons que tu aies fait une erreur volontaire dans moyenne :
def moyenne(liste):
return sum(liste) # ❌ oublié de diviser par len(liste)
Quand tu relances :
==================== test session starts ====================
collected 3 items
test_algo.py ..F [100%]
================================ FAILURES ================================
_______________________________ test_moyenne _______________________________
def test_moyenne():
> assert moyenne([10, 20, 30]) == 20
E assert 60 == 20
E + where 60 = moyenne([10, 20, 30])
test_algo.py:16: AssertionError
================== 1 failed, 2 passed in 0.02s ============================
👉 pytest te montre directement :
test_moyenne).assert moyenne([10, 20, 30]) == 20).60) vs ce qu’il attendait (20).pytest lance tous les fichiers test_*.py automatiquement.F = échec.