Skip to content

Réintégration des tests plugins avec isolation d'environnement #3107

@kwizer15

Description

@kwizer15

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions