IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

C++ builder : DUnit génération d'un rapport?


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Par défaut C++ builder : DUnit génération d'un rapport?
    Bonjour,

    Je viens de commencer a utiliser Dunit pour faire quelques test sur un de mes projets.
    Pour l'instant, je dirais tout vas bien, mais il y a 2 ou 3 points que je ne maitrise pas.
    1 - Comment peut on généré un rapport avec cette outils?
    2 - est ce qu'en cas de problèmes, (un Check qui passe pas) on peut encore faire une opération ou deux avant que ce test se termine?

    Merci d'avance!

  2. #2
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Par défaut
    Personne n'utilise DUnit?

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    J'ai utilisé PHPUnit et DUnit (Delphi 7)
    - Le Premier génère un rapport par défaut (une page HTML pur)
    - Le Second intégré dans un programme Delphi 7, lancer en ligne de commande par FinalBuilder en nocturne et le GUITestRunner fourni un TTestResult qui te donne le nombre de Test Lancé, en Echec et en Défaut que tu peux récupérer via Errors[] et Failures[] fournissant un TTestFailure dont je te laisse explorer les propriétés comme ThrownExceptionMessage
    Suffit de lire le code, il est fourni

    Sinon, il existe TextTestRunner qui écrit dans le STD OUTPUT, je crois que l'on peut l'utiliser en GUI en connectant un Pipe sur le StdOut tu pourras récupérer le contenu ou alors faire une appli console.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Par défaut
    Bonjour,

    alors, effectivement j'ai le code. Il a été généré automatiquement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
      try
      {
     
    	Application->Initialize();
    	Guitestrunner::RunRegisteredTests();
      }
      catch (Exception &exception)
      {
         Application->ShowException(&exception);
      }
      catch (...)
      {
         try
         {
           throw Exception("");
         }
         catch (Exception &exception)
         {
           Application->ShowException(&exception);
         }
      }
      return 0;
    }
    Je suis allé voie la définition de "RunRegisteredTests" puisque c'est lui qui s'occupe de tout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern PACKAGE void __fastcall RunRegisteredTests(void);
    Moi je ne vois aucun code de retour. Je n'ai trouvé aucun accesseur me permettant de récupérer un TTestResult.

    je trouve dommage d'avoir un projet graphique, et aucune fonction d'export écrite de base. je vais encore devoir me recogner une bonne partie du truc...
    l'interface graphique m’étant demandé.

    merci quand même...

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Le Code de DUnit comme cela porte bien son nom "Delphi Test Unit" est écrit en Delphi !
    Si tu veux voir le vrai code de DUnit, il ne faut pas se contenter des Headers générés mais du code Pascal qui contient l'implémentation donnant les obj utilisés en C++

    Sinon, en mode GUI, je te conseille de laisser le Application->Run et d'avoir un bouton pour lancer les Tests (et\ou une gestion de la ligne de commande)

    Je n'ai trouvé aucun accesseur me permettant de récupérer un TTestResult.
    Tu cherches donc très mal !

    Fichier GUITestRunner
    Classe TGUITestRunner
    Ligne 356 (version de 2007)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	__property Testframework::TTestResult* TestResult = {read=FTestResult, write=FTestResult};

    Ah, tu utilise un projet de Test séparé !
    Perso, c'était le même projet (le réel et le test + directive de compil), les deux fois où je l'ai utilisé en Delphi, je n'étais pas à l'initiative de l'utilisation, c'était déjà intégré dans le projet principal et lançait la procédure RunRegisteredTests() dans un Bouton ou via CMD


    Ne confond pas Guitestrunner::RunRegisteredTests() qui est la procédure RunRegisteredTests dans le namespace Guitestrunner
    Et
    TGUITestRunner::RunRegisteredTests qui est une méthode classe et en lisant le code Delphi, tu trouves comment faire ta propre version

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    void MyRunTest();
    {
      TGUITestRunner *TestObj = TGUITestRunner.Create(NULL);
      try
      {
        TestObj->Suite = Testframework::RegisteredTests();
        TestObj->ShowModal();
     
        for int i = 0; i < TestObj->TestResult->ErrorCount; i++)
        {
          TestObj->TestResult->Errors[i]->ThrownExceptionMessage;
        }
      }     
      __finally
      {
        delete TestObj;
      }
    }
    Faut avouer que ce n'est pas bien difficile !

    Dommage que TTextTestListener ne soit pas disponible en GUI, il me semble qu'il y a tout de même une bidouille pour utiliser Write, WriteLn sur Output (console) en mode GUI, faudrait retrouver cela !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Génération d'un rapport
    Par FranT dans le forum BIRT
    Réponses: 3
    Dernier message: 01/06/2007, 12h39
  2. Etat d'avancement de la génération d'un rapport
    Par fabboy dans le forum Jasper
    Réponses: 5
    Dernier message: 28/04/2007, 00h30
  3. [CR] Génération dynamique de Rapports
    Par OtI$ dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/11/2006, 16h37
  4. Réponses: 7
    Dernier message: 02/08/2006, 08h54
  5. Génération d'un rapport modifiable
    Par chmaichel dans le forum Delphi
    Réponses: 3
    Dernier message: 21/07/2006, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo