-
Notifications
You must be signed in to change notification settings - Fork 320
Description
Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez le décrire.
Les tests du système de plugins sont actuellement marqués comme skippés dans la PR #3102. Ces tests utilisaient le plugin "virtual" comme plugin de référence pour vérifier l'installation, la désinstallation et le fonctionnement général du système de plugins de Jeedom. Ils installaient automatiquement le plugin dans l'environnement de test, créant des effets de bords qui compromettaient l'isolation des tests unitaires.
Décrivez la solution que vous souhaitez
Réactiver les tests du système de plugins en utilisant des mocks plutôt que l'installation réelle du plugin virtual :
- Mock du cycle de vie des plugins : Installation, activation, désactivation, désinstallation
- Mock des interactions core-plugin : Communication entre le système principal et les plugins
- Mock des dépendances : Simulation des dépendances système et PHP des plugins
- Mock de l'API plugin : Simulation des appels API standardisés des plugins
- Tests des hooks et événements : Vérification du système d'événements entre core et plugins
Décrivez les alternatives que vous avez envisagées
- Plugin virtual en environnement isolé : Installation réelle mais dans un conteneur dédié (plus lourd)
- Plugin de test minimaliste : Créer un micro-plugin uniquement pour les tests (complexité supplémentaire)
- Tests d'intégration séparés : Séparer ces tests dans une suite dédiée (perte de cohérence)
- Suppression définitive : Solution initiale écartée car elle fait perdre la couverture critique du système de plugins
Contexte supplémentaire
Le système de plugins étant un composant central de Jeedom, ces tests sont critiques pour :
- Sécurité : Vérifier l'isolation entre plugins et système principal
- Stabilité : S'assurer que l'installation/désinstallation ne casse pas le système
- Compatibilité : Valider les interactions avec différents types de plugins
- Régression : Détecter les changements cassants dans l'API plugins
Les tests sont préservés avec markTestAsSkipped()
pour faciliter la réintégration future avec une approche mockée qui testera les mêmes fonctionnalités sans polluer l'environnement.
Références :
- PR Feat/rerun tests #3102 : Tests du système de plugins marqués comme skippés
- Plugin de référence utilisé :
virtual
- Composants testés : Installation, API, hooks, événements plugins