Aller au contenu

Tests Python

Exécutez des tests Python sur Elide avec unittest de la bibliothèque standard ou pytest depuis un environnement virtuel ; elide test ne découvre pas les tests Python en 1.6.0.

Sur cette page

elide test ne découvre pas les tests Python en 1.6.0 ; dans un répertoire uniquement Python, il affiche No tests found. et se termine avec 0. Lancez plutôt l’exécuteur de tests comme module. Le code de sortie est celui de l’exécuteur : un test en échec fait échouer la commande.

Les exemples testent ce module :

# greet/cli.py
import sys


def greeting(name: str) -> str:
    return f"Hello, {name}!"


def main() -> int:
    print(greeting(sys.argv[1] if len(sys.argv) > 1 else "world"))
    return 0

greet/ et tests/ contiennent chacun un __init__.py vide.

unittest

unittest fait partie de la bibliothèque standard :

# tests/test_cli.py
import unittest

from greet.cli import greeting


class GreetingTest(unittest.TestCase):
    def test_names_the_caller(self):
        self.assertEqual(greeting("Elide"), "Hello, Elide!")
elide python -m unittest discover -s tests -t .
.
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK

pytest

Installez pytest dans un environnement virtuel Python 3.13 (Paquets et environnements virtuels), puis lancez-le avec VIRTUAL_ENV défini :

uv venv --python 3.13 .venv
uv pip install --python .venv/bin/python pytest
# tests/test_greeting.py
from greet.cli import greeting


def test_default_name():
    assert greeting("world") == "Hello, world!"
VIRTUAL_ENV=.venv elide python -m pytest -q

pytest collecte les deux fichiers et se termine par :

2 passed in 0.03s

En CI

Ajoutez le composant Python après avoir installé Elide (elide setup python), puis lancez les mêmes commandes ; voir Intégration continue.

Cette page vous a-t-elle aidé ?