Skip to content

Conversation

kwizer15
Copy link
Contributor

@kwizer15 kwizer15 commented Jul 6, 2025

Description

Cette PR contient :

  1. Réactivation des tests : Permet de lancer et de faire passer les tests PHPUnit déjà présents pour Jeedom dans une suite "Legacy Tests".

  2. GitHub Actions workflow : Lance les tests dans le Github Actions pour PHP 7.4 et PHP 8.2 avec toute l’initialisation nécessaire.

  3. Documentation des tests : Mise à jour complète de la documentation docs/fr_FR/unit-tests/phpunit.md avec des instructions détaillées d'installation et d'utilisation des tests unitaires.

  4. Tests du système de plugins marqués comme skippés: Les tests utilisaient le plugin "virtual" comme plugin de référence pour vérifier l'installation et le fonctionnement du système de plugins en général. Ces tests installaient automatiquement le plugin dans l'environnement de test courant, créant des effets de bords indésirables. Ils ont été marqués comme markTestAsSkipped() plutôt que supprimés, préservant ainsi la structure de tests pour une future réintégration via des mocks du système de plugins.

Les modifications incluent :

  • Configuration automatique de la base de données de test dans GitHub Actions
  • Ajout de PHPUnit dans les dépendances de dev composer
  • Documentation complète des commandes de test et de la structure des tests
  • Explication du fonctionnement du bootstrap des tests

Suggested changelog entry

Tests unitaires PHPUnit - Réactivation complète de l'infrastructure

  • Réactivation des tests PHPUnit existants dans une suite "Legacy Tests"
  • Workflow GitHub Actions pour CI/CD automatisé (PHP 7.4 et PHP 8.2)
  • Documentation complète des tests unitaires avec guide d'installation et d'utilisation
  • ⚠️ Tests système de plugins temporairement désactivés (utilisaient plugin virtual, créaient effets de bords)
  • 🔧 Configuration automatique de la base de données de test en CI
  • 📦 Ajout de PHPUnit dans les dépendances composer dev
  • 📝 Documentation du bootstrap et de la structure des tests

Impact développeurs : Passage de 0 tests fonctionnels à l'ensemble des tests Legacy activés. Les commandes de test sont maintenant documentées et automatisées.

Related issues/external references

Fix #3103

Types of changes

  • Bug fix (non-breaking change which fixes)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
    • This change is only breaking for integrators, not for external standards or end-users.
  • Documentation improvement

PR checklist

@kwizer15 kwizer15 force-pushed the feat/rerun-tests branch 6 times, most recently from bdc0602 to e7da635 Compare July 6, 2025 18:15
@kwizer15 kwizer15 force-pushed the feat/rerun-tests branch from e7da635 to 9e39e04 Compare July 6, 2025 18:16
@kwizer15 kwizer15 mentioned this pull request Jul 6, 2025
@kwizer15 kwizer15 force-pushed the feat/rerun-tests branch 2 times, most recently from a41f181 to cf36214 Compare July 8, 2025 07:12
@kwizer15 kwizer15 force-pushed the feat/rerun-tests branch from cf36214 to 3a6515d Compare July 8, 2025 07:19
@pifou25
Copy link
Contributor

pifou25 commented Jul 15, 2025

Hello :) magnifique cette PR ça marche !
J'ai eu du mal à passer les tests en local, je n'ai pas vu qu'il fallait mettre un login root pour mysql, on ne peut pas trouver un moyen pour que ça passe avec le user jeedom classique ?

Ensuite, j'ai eu plusieurs erreurs, mais non bloquantes:

PHPUnit\Framework\SkippedTestError: Side effect in /var/www/html/vendor/phpunit/phpunit/src/Framework/Assert.php on line 2895

Dans logTest.php je vois que tu skip ces tests... est-ce qu'il n'y a pas moyen de les corriger ?
$this->markTestSkipped('Side effect');

Symfony\Component\ExpressionLanguage\SyntaxError: Variable "plop" is not valid around position 1 for expression plop. in /var/www/html/vendor/symfony/expression-language/Parser.php on line 230

Dans scenarioExpressionTest.php et je ne vois pas si tu a skip ce tests mais c'est non bloquant également, le résultat est bon:

OK, but incomplete, skipped, or risky tests!
Tests: 89, Assertions: 112, Skipped: 7.

@kwizer15
Copy link
Contributor Author

Pour les logTest c'est surtout des problemes de creation de fichier sur le file system. Je prefere les bypasser en attendant de mocker ou de reecrire des tests plus propre.

Pour les scenarioTest, j'avoue ne pas avoir eu cette erreur. Manque surement une initialisation quelque part.

@kwizer15 kwizer15 requested a review from pifou25 July 19, 2025 08:21
@Hotfirenet Hotfirenet requested review from Hotfirenet, Mips2648, Salvialf, Sekiro-kost, tmartinez69009 and zoic21 and removed request for pifou25 July 30, 2025 06:38
@Hotfirenet Hotfirenet requested a review from reineabs July 30, 2025 06:38
@kwizer15 kwizer15 requested a review from pifou25 September 22, 2025 09:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remettre en fonctionnement les tests unitaires avec CI/CD et documentation

2 participants