Bonjour à tous,
je vais tenter ma chance en français, n'ayant pas eu de retour sur le même sujet en anglais.
Il y a de cela quelques semaines Julien a émis l'idée de refaire vivre le support de postgreSQL. Pour faire les choses bien j'ai proposé de d'abord faire une couverture fonctionnelle de piwigo au moyen de tests. piwigo gagnerait énormément à avoir une couverture de ses fonctionnalités par des tests. Voilà pour le contexte. Pour que l'écriture de tests ne soit pas trop barbante, j'ai décidé d'utiliser Behat (pages en anglais). Sur le compte github de Jean-François Lépine, on trouve une intro en français : https://github.com/Behat/fr-docs.behat. … _intro.rst D'ailleurs le blog du même Jean-François fourmille d'aide à ce formidable outil : http://blog.lepine.pro/
J'ai commencé à écrire des tests. J'ai créé un nouveau projet sur mon compte github : [Github] fr-docs.behat.org file quick_intro.rst">https://github.com/Behat/fr-docs.behat. … _intro.rst D'ailleurs le blog du même Jean-François fourmille d'aide à ce formidable outil : http://blog.lepine.pro/
J'ai commencé à écrire des tests. J'ai créé un nouveau projet sur mon compte github : Code:
# language: fr
Fonctionnalité: Commentaires
Afin de pouvoir ajouter des commentaires
En tant que visiteur
Je dois être capable d'ajouter des commentaires aux photos
Scénario: ajouter un commentaire
Etant donné que je suis connecté en tant que "user1"
Quand je vais sur "album 1"
Et je vais sur "photo 1"
Quand j'ajoute un commentaire:
"""
Quelle belle photo
"""
Alors je dois voir "Votre commentaire a été enregistré"
Je n'ai pas triché. C'est un vrai test que j'ai écrit même si ceux que j'ai déjà écrit sont en anglais mais ce n'est pas plus compliqué en anglais.
Un scénario s'écrit de la manière suivante :
Scénario: Une description du scénario Etant donné [un contexte] Quand [un événement] Alors [un résultat attendu]
Le même scénario en anglais donnerait :
Feature: Comment In order to add comments to the gallery As a user I need to be abble to add comments to picture Scenario: Add a comment Given I am logged in as "user1" with password "pass1" When I follow "album 1" And I follow "photo 1" And I add a comment : """ What a good pics ! """ Then I should see "Your comment has been registered"
Behat traduit ses phrases en tests sur l'application que l'on teste. Par exemple, quan on écrit "I should see "something"", Behat a fait la requête vers le serveur et il teste que le texte que l'on cherche est présent dans la page. Behat vient de base avec de nombreuses phrases toutes faîtes. Et evidemment on peut en écrire facilement de nouvelles.
Voilà pour une première introduction. Si certains sont intéressés et veulent contribuer, ils peuvent cloner mon dépôt et me proposer un patch (pull request), ou sinon par tout autre moyen.
Est-ce que cela vous semble clair ? Est-ce que cela vous intéresse ? Est-ce que cela vous semble compliqué ?
p.s: si certains veulent des liens de ressources en anglais, j'en ai pleins.
Hors ligne
nan mais c'est très très bien Nico. Si on peut automatiser tout ça c'est parfait.
Comme tu as l'air motivé, d'avoir du temps pour ça et que tu connais déjà, je pense que ce srait extrêmement profitable que tu puisses aller jusqu'au bout
Par contre sur github moyen mais bon...
Hors ligne
Bonjour :-)
Je trouve que l'idée est intéressante pour permettre de ne pas perdre de fonctionnalité quand on modifie une partie d'une code et permettre de comprendre le code existant.
Il faut se dire qu'on en à pour plusieurs mois (voir années) pour refaire tous les tests de Piwigo.
Il faut rester souple et éventuellement rajouter les tests pour ceux qui oublieraient de les mettre, dans un projet tous le monde n'est pas au même niveau.
Dans les inconvénients, je n'ai pas idée du temps que cela ajoute sur chaque dev
nicolas a écrit:
Je n'ai pas triché. C'est un vrai test que j'ai écrit même si ceux que j'ai déjà écrit sont en anglais mais ce n'est pas plus compliqué en anglais.
Ben si c'est de l'anglais :-P
Hors ligne
flop25 a écrit:
nan mais c'est très très bien Nico. Si on peut automatiser tout ça c'est parfait.
Comme tu as l'air motivé, d'avoir du temps pour ça et que tu connais déjà, je pense que ce srait extrêmement profitable que tu puisses aller jusqu'au bout
Heu... comment dire ? Mon message n'était peut-être pas très clair mais un des buts est de trouver des personnes pour contribuer.
flop25 a écrit:
Par contre sur github moyen mais bon...
Qu'est-ce qui te gêne exactement ? github ? git ? Autre ?
Hors ligne
ddtddt a écrit:
Bonjour :-)
Je trouve que l'idée est intéressante pour permettre de ne pas perdre de fonctionnalité quand on modifie une partie d'une code et permettre de comprendre le code existant.
Et oui cela permet aussi de comprendre l'existant comme tu dis.
Un exemple de tests correspondant à un bug (corrigé depuis) :
https://github.com/nikrou/phyxo/blob/ma … nt.feature (le dernier scénario)
ddtddt a écrit:
Il faut se dire qu'on en à pour plusieurs mois (voir années) pour refaire tous les tests de Piwigo.
Il faut rester souple et éventuellement rajouter les tests pour ceux qui oublieraient de les mettre, dans un projet tous le monde n'est pas au même niveau.
Je ne pense vraiment pas qu'il faille plusieurs mois pour tester le fonctionnel de piwigo même si piwigo est très riche en fonctionnalités ! :-)
ddtddt a écrit:
Dans les inconvénients, je n'ai pas idée du temps que cela ajoute sur chaque dev
Dans les inconvénients, je dirais la stabilité des tests dans le temps. Normalement on écrit les tests qu'une seule fois. On ne doit pas modifier les scénarios, sauf si la fonctionnalité est supprimée.
Je n'en ai pas parlé mais les fonctionnalités ne sont pas forcément toutes aux bénéfices des visiteurs. Certains sont aux bénéfices de développeurs. Je parle de l'[Github] phyxo file features/comment.feature">https://github.com/nikrou/phyxo/blob/ma … nt.feature (le dernier scénario)
ddtddt a écrit:
Il faut se dire qu'on en à pour plusieurs mois (voir années) pour refaire tous les tests de Piwigo.
Il faut rester souple et éventuellement rajouter les tests pour ceux qui oublieraient de les mettre, dans un projet tous le monde n'est pas au même niveau.
Je ne pense vraiment pas qu'il faille plusieurs mois pour tester le fonctionnel de piwigo même si piwigo est très riche en fonctionnalités ! :-)
ddtddt a écrit:
Dans les inconvénients, je n'ai pas idée du temps que cela ajoute sur chaque dev
Dans les inconvénients, je dirais la stabilité des tests dans le temps. Normalement on écrit les tests qu'une seule fois. On ne doit pas modifier les scénarios, sauf si la fonctionnalité est supprimée.
Je n'en ai pas parlé mais les fonctionnalités ne sont pas forcément toutes aux bénéfices des visiteurs. Certains sont aux bénéfices de développeurs. Je parle de l'Code:
@api
Feature: API
In order to manage my gallery
As a developer
I need to be abble to use the api
Scenario: Add an image
Given I am login as "webmaster" for webservice
When I make a POST request to "pwg.images.addSimple" method with parameters:
| FILES:image | features/media/img_1.png |
| category | 1 |
| name | A nice title |
| level | 2 |
| tags | My first tag, Another tag |
Then save "image_id"
Then image "image_id" has field "name" equal to "A nice title"
Then image "image_id" has field "file" equal to "img_1.png"
Then image "image_id" has tags:
| tag1 | My first tag |
| tag2 | Another tag |
Ce scénario vérifie que si on ajoute une image avec deux tags, alors elle est bien taggée.
Hors ligne