File size: 2,174 Bytes
b5cc534 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
## ✅ Tests unitaires & couverture
Ce projet dispose de tests automatisés pour valider les principales fonctionnalités :
### 📂 Fichiers de test
| Fichier | Description |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `tests/test_handler.py` | Vérifie le bon fonctionnement de la fonction `predict()` en mode `zero-shot` et `few-shot`. |
| `tests/test_interface.py` | Teste l'interface Gradio, les comportements inattendus (entrée vide, modèle invalide), et la création de l'interface. |
---
### 🧪 Lancer les tests
```bash
python -m pytest --cov=app --cov-report=term-missing
```
Ce qui génère un rapport de couverture avec les lignes non couvertes :
```
Name Stmts Miss Cover Missing
------------------------------------------------
app/handler.py 16 0 100%
app/interface.py 7 2 71% 17-18
------------------------------------------------
TOTAL 23 2 91%
```
> 🌟 Les lignes 17-18 non couvertes correspondent à l’exécution directe de l’interface dans le fichier `main.py`.
> Ces lignes ne sont volontairement **pas testées** car elles concernent le lancement interactif de l'application (`iface.launch()`), hors du périmètre des tests unitaires.
---
### 🚫 Hook `pre-push` automatique
Pour garantir la stabilité du dépôt, un **hook Git `pre-push`** a été mis en place.
🧹 Il exécute automatiquement les tests avant chaque `git push`.
#### Exemple `.git/hooks/pre-push`
```bash
#!/bin/sh
echo "🔍 Exécution des tests unitaires avant le push..."
python -m pytest --cov=app --cov-report=term-missing
if [ $? -ne 0 ]; then
echo "❌ Push bloqué : les tests ont échoué."
exit 1
fi
```
#### 🔧 Installation manuelle
1. Crée un fichier `.git/hooks/pre-push` si ce n’est pas déjà fait,
2. Colle le script ci-dessus,
3. Rends-le exécutable :
```bash
chmod +x .git/hooks/pre-push
```
|