Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: run phpunits #2993

Draft
wants to merge 1 commit into
base: alpha
Choose a base branch
from
Draft

feat: run phpunits #2993

wants to merge 1 commit into from

Conversation

pifou25
Copy link
Contributor

@pifou25 pifou25 commented Dec 8, 2024

Description

J'ai passé un peu de temps à essayer de faire marcher les TU existants, mais je n'avance plus, alors je propose déjà le projet actuel, avec quelques questions... :)

Explications : 2 types de tests:

  • intégration: tester jeedom en fonctionnement, utilise docker pour démarrer la bdd et le container jeedom = github workflow docker-test.yml (existe déjà mais j'ajoute juste l'exécution des TU)
  • unitaire: tester une classe seule sans dépendance = github workflow phpunit.yml

les questions

A priori, les tests existants sont à classer dans la 1ere catégorie, mais, ils sont tous en erreur... on est d'accord qu'ils n'ont pas été maintenu depuis longtemps, est-ce que ça vaut le coup de les corriger ou bien on supprime tout pour repartir sur une base propre?

Pour la 2e catégorie, en principe la plus simple, on ne devrait inclure qu'une seule classe, celle à tester. Le problème c'est que toutes les classes ont le require_once __DIR__ . "/../php/core.inc.php"; et donc on se prend toutes les dépendances. C'était peut-être utile avant, mais avec l'autoloader maintenant on n'a plus besoin de répéter cet include dans toutes les classes ( ... vrai ?) Je l'ai donc enlevé. Mais ça reste compliqué de faire des TU simples car il y a un couplage fort avec certaines classes (DB, utils, en particulier) donc il faudra soit faire un mock de ces classes indispensables (j'ai commencé à le faire dans bootstrap.php), soit refactorer pour diminuer ce couplage.

(ps: j'ai aussi des changes d'une autre PR sur celle ci, mais sera mise à jour au fil de l'eau. C'est un brouillon)

Suggested changelog entry

exécution automatique des tests unitaires

2 types de tests:
unitaire: tester une classe seule sans dépendance = github workflow phpunit.yml
intégration: tester jeedom en fonctionnement, utilise docker pour démarrer la bdd et le container jeedom = github workflow docker-test.yml
@Hotfirenet
Copy link
Contributor

Salut @pifou25,
Je constate également que les tests unitaires ne sont plus utilisés depuis un certain temps, et personnellement, je pense que c’est une évolution positive.
Je vais soumettre ta proposition à l'équipe pour discussion. Par ailleurs, je partage ton avis : repartir de zéro avec une nouvelle documentation pourrait être une excellente initiative.

Cordialement,

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.

2 participants