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

Bibliothèques Discussion :

resultat de test avec CppUnit


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut resultat de test avec CppUnit
    Bonjour tout le monde, j'espere que personne n'avai aborder ce probleme avant.

    Une ptite intro : je suis entrain de tester differentes classes d'une grosse application et on m'a imposer
    d'utiliser le framework CppUnit.

    Mon probleme est le suivant :
    j'ai cette fonction

    void OpNotTest::normalCaseTest(){
    CPPUNIT_ASSERT_EQUAL(1, 3);
    CPPUNIT_ASSERT_EQUAL(1, 1);
    CPPUNIT_ASSERT_EQUAL(1, 4);

    }

    quand je lance tout mes tests (sachant qui y a d'autres fonction qui ressemble a celle-ci et qui sont deja enregistré TestFactoryRegistry de CppUnit).

    Le message suivant est afficher dans ma sortie standard
    OpNotTest.cpp:73:Assertion
    Test name: OpNotTest::normalCaseTest
    equality assertion failed
    - Expected: 1
    - Actual : 3

    Conclusion :
    CppUnit detecte juste que la 1ere assertion est fausse et s'arrete il ne continue pas
    jusqu'a la fin de la fonction pour detecter la derniere asssertion qui est fausse aussi. Et je ne comprend pas pourquoi

    J'espere que quelqu'un pourra m'aider -_- et merci d'avance

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Une assertion qui échoue est en effet bloquante, car ne pas la respecter peut mener à un crash (genre, on asserte qu'un pointeur ne PEUT PAS être nul, et s'il est nul quand même, ça crashe forcément...)

    Sachant que les assertions servent à cela: Elles testent des invariants, elles servent à signaler des trucs qui ne peuvent pas arriver.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Merci pour la réponse,
    Sinon est ce que c'est possible de contourner ceci et de laisser le programme s'executer meme si l'assertion échoue.
    Car moi en fait je me sert des assertions pour verifier le resultat d'une fonction qui retourne un booléen et ce qui m'interesse c'est que le programme se termine en me disant dans quel endroit ca a échouer et pourquoi. Avez-vous une piste a me montrer pour faire cela?

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Sinon est ce que c'est possible de contourner ceci et de laisser le programme s'executer meme si l'assertion échoue.
    C'est possible avec les assertions de Visual, aucune idée pour CppUnit.
    Car moi en fait je me sert des assertions pour verifier le resultat d'une fonction qui retourne un booléen
    Tu ne dois pas faire cela si la fonction peut, théoriquement, échouer (cas typique : malloc()).
    et ce qui m'interesse c'est que le programme se termine en me disant dans quel endroit ca a échouer et pourquoi. Avez-vous une piste a me montrer pour faire cela?
    C'est le principe de l'assertion. La macro assert en C et C++ est supposée faire cela, en disant l'assertion qui a foiré et où elle se trouve dans le fichier source.
    Les assertions de Visual permettent en plus d'appeler de debugger.

    Pour CppUnit, là encore, je n'y connais rien.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Daccord, moi en fait ce qui m'interesse c'est CppUnit car je l'utilise actuellement durant mon stage, et je doit faire un ensemble de test avec un ensemble de fonction qui renvoient des booléen par exemple (pas de malloc qui échouent dans les fonction juste quelque test d'égalité ...) Je pense que le mieu que je peux faire est de créer carrement une assertion a moi ce que je pense doit etre possible avec la biblio. CppUnit.
    En tous cas merci pour ton aide. Je continue sur ma voix dés que je trouve comment faire
    je posterai un message ici pour aider ceux qui envisagent faire la meme chose que moi.

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/07/2010, 10h37
  2. tests avec cppunit
    Par donkeyquote dans le forum C++
    Réponses: 3
    Dernier message: 05/07/2008, 18h47
  3. [xsl] Test avec une variable ?
    Par maxonman dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 24/01/2006, 10h47
  4. outils d'automatisation de test avec PHP
    Par ss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 22/12/2005, 14h33
  5. xsl:test .... avec comportement bizarre
    Par Blue LC dans le forum XMLRAD
    Réponses: 2
    Dernier message: 10/06/2005, 13h56

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