Hello,
Je crée cette entrée de suivi, parce que les développeurs et administrateurs systèmes n'ont pas de moyen pour savoir si un changement de dépendance (npm, ruby, debian) casse les fonctionnalités du site.
Sur Github, on a le robot "dependabot" qui cherche les mises à jour nécessaire des dépendances et propose des pull request pour les mettre à jour.
Mais, sans aucun tests, il est impossible de prendre la décision de fusionner les merge request.
Si on réintroduit les tests, on pourra en plus utiliser "Github Action" pour les exécuter automatiquement à chaque nouvelle demande de mise à jour. Ça permettra de réduire la barrière pour les nouveaux contributeurs: ils pourront avoir un aperçu si leur modification casse le site.
# Comment débuter ?
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Préambule: c'est moi qui est ouvert l'entrée de suivi, j'ai oublié de me connecter avant :)
Comme je ne connais pas moi-même rails, j'ai cherché la manière de faire avec Rails.
D'après son tutorial, rails a déjà son propre framework de test: https://guides.rubyonrails.org/testing.html
J'ai donc commencé par chercher dans l'historique git et j'ai découvert qu'il y avait des tests dans le dossier
test
(dossier utilisé par rails, justement).Puis, ce dossier a été supprimé en faveur du framework de test
rspec2
qui avait ses tests dans le dossierspec
.Depuis le commit eaf8458858ab4fff7dffd86ae396c64f0d76e753, on a supprimé tous les tests.
Avant de pouvoir commencer, j'ai donc plusieurs questions:
pourquoi est-ce que l'on est passé au framework
rspec2
?le changement de framework a était fait il y a très longtemps (en 2010), si je recommence de zéro, on pourrait à nouveau utiliser le framework de rails ?
est-ce que les tests qui étaient dans le dossier
spec
étaient vraiment trop cassé ? est-ce que je devrais recommencer de zéro ? étaient-ils utiles ?[^] # Re: Comment débuter ?
Posté par Benoît Sibaud (site web personnel) . Évalué à 4 (+0/-0).
ça c'est la partie facile, réaffectée :).
[^] # Re: Comment débuter ?
Posté par Bruno Michel (site web personnel) . Évalué à 4 (+0/-0).
C'était une autre époque. Aujourd'hui, le choix entre rspec et le framework de tests officiel de Rails est principalement une question de goûts (la syntaxe n'est pas la même), mais les deux sont très complets et ont copié de l'autre tout ce qu'il y avait d'intéressant.
Oui, pas de soucis.
Les tests n'étaient pas très cassés, j'aurais pu les corriger en moins d'une heure. Par contre, ils n'étaient pas vraiment utiles. Je ne pense pas qu'ils n'aient jamais trouvé le moindre bug. La couverture de tests était vraiment très faible et c'était surtout les mêmes pages que je regardais quand je développais des nouvelles fonctionnalités. Si la page d'accueil casse, je m'en rendais compte très très rapidement, sans avoir besoin de tests automatisés pour ça.
Pour info, même avec des tests, je pense que ça reste compliqué de prendre la décision. Il faut avoir une bonne couverture de tests pour que ça aide et, pour ça, il faut y passer beaucoup de temps à écrire des tests, temps qui serait probablement plus utile ailleurs. Et il faut aussi faire très attention à la version de Ruby : on a une version de Ruby assez ancienne en prod et j'ai plusieurs fois dû faire des reverts à cause de ça.
[^] # Re: Comment débuter ?
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Merci pour toutes ces informations, je vais voir ce que j'arrive à faire.
Est-ce que la version de Ruby est plus vieille que celle disponible sur Debian Stretch (version 2.3.3) ?
Je comptais utiliser les images Docker que j'ai configuré et qui travaillent justement avec Debian Stretch pour l'instant.
[^] # Re: Comment débuter ?
Posté par Bruno Michel (site web personnel) . Évalué à 4 (+0/-0).
C'est bien cette version.
[^] # Re: Comment débuter ?
Posté par echarp (site web personnel, Mastodon) . Évalué à 5 (+0/-0).
J'ai rajouté des tests pour les contrôleurs de premier niveau.
Inclus dans la MR pour la migration à rails 7.
Les tests sont assez simples, basés sur minitest, et reprenant dans une certaine mesure la structure des premiers tests du projet.
[^] # Re: Comment débuter ?
Posté par BAud (site web personnel) . Évalué à 4 (+0/-0). Dernière modification le 27 septembre 2023 à 19:39.
tu aurais pu donner le lien vers la MR :-)
https://github.com/linuxfrorg/linuxfr.org/pull/375
cela pourrait impliquer ceux souhaitant tester les màj de LinuxFr.org sur leur propre infra auto-hébergée (ok, doit yavoir 4-5 personnes max mais bon, si c'est pas documenté, personne d'autre ne le saura :/)
Merci pour votre implication à toustes pour faire évoluer notre site préféré vers la modernité _o/
(manque le point médian à copier/coller dans l'aide Caractères spéciaux à copier‑coller)
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.