Journal Un harnais de test pour Qt

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
8
7
déc.
2018

Bonjour Nal,

Je viens de publier ce harnais de test qui permet de lancer facilement des tests écrits avec le moteur de Qt et de collecter les résultats dans un rapport en HTML.

Le contexte

Qt fournit quelques classes pour réaliser des tests unitaires, mais ils proposent de générer une application séparée pour chaque test, et de les lancer toutes à la fois via un "make check". Les résultats sont alors affichés sur la console et pénibles à lire. De plus il faut écrire beaucoup de code "inutile" pour générer le test sous forme d'un exécutable.

La solution

L'idée de ce harnais est de simplifier le code autour du test.
On aura donc:
- Un seul exécutable, c'est plus simple
- Une possibilité de lancer tous les tests, ou un seul, via la ligne de commande
- On conserve l'exécution de chaque test comme un process séparé, ce qui évite qu'un test perturbe le suivant
- Une façon très simple (une seule ligne de code) d'enregistrer un test supplémentaire
- Une sortie en XML avec une feuille de style xslt pour générer un rapport en HTML avec les tests réussis, échoués, et aussi les logs, warnings et erreurs émis par le code testé pendant l'exécution.

Voilà, rien de très exceptionnel mais il me semble que ça manquait dans le système de tests unitaires fourni avec Qt.

Concrètement, une fois les tests écrits il y a juste à lancer "make check" pour obtenir directement le rapport en HTML.

Mot de la fin

Je vous laisse fouiller le dépôt github pour ceux qui souhaitent approfondir.

Merci à mon employeur Viveris Technologies qui a autorisé la publication de ce code sous licence libre (pour ceux qui pensent que c'est important, c'est du MIT). Ce code a été écrit il y a quelques années, mais c'est seulement maintenant que j'ai pu l'extraire du projet dans lequel il a été développé.

  • # « Harnais de test » ?

    Posté par  (site web personnel, Mastodon) . Évalué à 10.

    Qu'est-ce qu'un « harnais de test » ? Avec le contexte j'ai l'impression que c'est une expression pour désigner une infrastructure de tests, mais je n'avais jamais vu cette expression avant.

    La connaissance libre : https://zestedesavoir.com

    • [^] # Re: « Harnais de test » ?

      Posté par  (site web personnel) . Évalué à 1.

      traduction malheureuse de «test harness» ?

      • [^] # Re: « Harnais de test » ?

        Posté par  (site web personnel) . Évalué à 2.

        Pas si malheureuse que ça, c'est une traduction valide du terme, et quand on teste des choses en acrobatie par exemple, il vaut mieux avoir une sangle pour éviter de s'écraser par terre justement…

      • [^] # Re: « Harnais de test » ?

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Pourquoi malheureuse?

        Un harnais, c'est ce qui permet d'attacher la selle au cheval, ou les tests au code à tester. Sans ça, les tests risquent de glisser et de ne rien tester du tout!

        Ou encore en escalade, c'est l'équipement qui permet de s'assurer correctement, sans quoi, on tombe dans le ravin à la moindre inattention. Un peu comme quand on se dit "c'est bon, j'vais lancer mes tests à la main et analyser la sortie de la console pour voir si y'a des erreurs".

        En tout cas je ne vois pas d'autre traduction.

        D'après wikipedia, les objectifs sont:
        - Automatiser le processus de test,
        - Exécuter la suite de cas de tests,
        - Générer les rapports associés

        Il ne semble pas y avoir de page en version française correspondante sur wikipedia, pour le moment.

        • [^] # Re: « Harnais de test » ?

          Posté par  (site web personnel) . Évalué à 2.

          Je n'exprime que mon ressenti par rapport à une traduction - à mon sens - inappropriée.
          Le harnais est un élément de liaison entre l'élément moteur (le cheval par exemple) et l'élément tracté (la carriole -la "calèche" pour les gens précieux-, le tombreau, le braban, semoir …), aucunement entre la selle et le cheval.
          En escalade, le baudrier, enserrant le bassin et les cuisses permet la retenue du corps en cas de chute, il est généralement à tord appelé harnais.

          Autant l'expression anglaise ne me paraît pas inappropriée car issue du jargonage pragmatique de l'informatique, autant la traduction française me laisse une impression de traduction malheureuse. C'est probablement un peu idiot, mais faire un anglicisme en utilisant directement harness m'aurait moins titillé (et là, tu aurais pris les J Toubons du coin sur le paletot, hurlants à l'usage inconsidéré d'un terme barbarement anglo-saxon dans notre belle langue chaste et pure).

          Peut-être serais-ce simplement un cadriciel (framework) de tests (avec l'ambigüation induite)?

          Cheers ;-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.