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

Boost C++ Discussion :

Boost.Test & Visual Studio


Sujet :

Boost C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut Boost.Test & Visual Studio
    Hello,

    Je suis en train de me mettre à Boost.Test.

    La configuration souhaitée est la suivante : une bibliothèque statique fonctionnelle, qui inclue également les tests. Ces derniers doivent être appelés par un projet dédié à Boost.Test (BOOST_TEST_MAIN).

    J'ai fait en sorte que le ce dernier projet référence la bibliothèque statique à tester (via les Propriétés du projet, Frameworks & references, ainsi que via Project Dependencies [je ne maîtrise pas bien la différence entre les deux]...), mais mes tests dans la bibliothèque sont superbement ignorés.

    J'ai suivi à la lettre le didacticiel fourni sur ces pages :
    http://legalizeadulthood.wordpress.com/2009/07/05/c-unit-tests-with-boost-test-part-1/

    http://legalizeadulthood.wordpress.c...t-test-part-2/

    mais en fin de page 2, lors de la compilation, le test OneHasNoFactors n'est pas vu, et Boost.Test me sort : "test tree is empty".

    Je suis sous Visual 2010.

    Cela commence par me courir sur le haricot.

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    [Le premier lien n'est pas bon -> tu n'as pas changé les dates lors du copier-coller]
    Sinon, je suis parti de ce tuto: http://www.beroux.com/english/articl..._unit_testing/ (en erreur 503 à cet instant précis), ce qui m'a donné ce genre de choses:

    Code c++ : 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
    #define BOOST_TEST_MODULE "la thématique de ce fichier de test..."
    #define BOOST_TEST_DYN_LINK
    #include "HeaderTesté.hpp"
     
    #ifdef DOXYGEN
    #define BOOST_AUTO_TEST_CASE(f) void UT_##f()
    #endif
     
    #include <boost/test/unit_test.hpp>
     
     
    BOOST_AUTO_TEST_CASE(Test1_sur_un_fichier_precis)
    {
        BOOST_REQUIRE_GT(boost::unit_test::framework::master_test_suite().argc, 1);
        char const* filename =  boost::unit_test::framework::master_test_suite().argv[1];
        BOOST_REQUIRE(filename);
        autres tests....
    }
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Pourrais tu nous montrer un peu le code que tu essayes d'utiliser, en précisant de quels fichiers il est issu?
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Je fais le tutorial exactement comme il est présenté sur le site.

    Le seul écart, c'est que mes projets héritent de fichiers de propriétés afin de ne pas avoir à définir des choses concernant Boost dans mes projets.

    Comme mon problème vient manifestement du linking (la compilation et l'édition de liens fonctionnent ; c'est juste que mon test n'est pas vu), j'ai essayé de voir dasnc es propos ce qui pourrait pêcher de ce côté là, mais je n'ai rien vu.

    Et les macros de Boost ne m'aident pas à comprendre ce qu'il se passe.

    À la place du BOOST_TEST_MAIN, j'ai fait un main normal, et utilise la classe testée. Pas de problème, elle est vue : l'édition de liens se passe bien.

    Il doit manquer une macro Boost.Test. Je ne comprend pas.

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Si la compilation et l'édition de liens ne présentent aucun problème mais que ton test n'est pas automatiquement enregistré dans la batterie de tests, je ne vois qu'une seule solution: c'est que les tests unitaires sont dans un fichier qui n'est pas compilé.

    Autrement, tu aurais soit un problème d'édition de liens soit un problème de compilation
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Pour en être sûr, j'ai mis dans ce CPP (dans la lib, donc) une fonction bateau.

    À la place du BOOST_TEST_MAIN dans l'autre projet, j'ai mis un main normal qui appelle cette fonction. Pas de problème : elle est appelée. Le fichier est donc compilé.

    Pour en savoir plus, j'ai mis l'édition de lien en mode verbeux.
    Quand j'utilise BOOST_TEST_MAIN, ma bibliothèque statique est bien recherchée, mais il ne récupère aucun symbole. Quand j'utilise mon main "normal", il va bien récupérer ce qu'il faut.

    J'ai ensuite été fouiller le contenu du .lib avec l’utilitaire dumpbin.
    Je trouve bien un symbole avec le nom de mon test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    COMDAT; sym= "void __cdecl `dynamic initializer for 'OneHasNoFactors_registrar4''(void)" (??__EOneHasNoFactors_registrar4@@YAXXZ)
    Mais je ne trouve pas de symboles correspondant à ce que j'utilise dans le test.

    Quelqu'un a posé une question similaire sur StackOverflow.
    Le lien indiqué ne m'a pas beaucoup éclairé sur la solution que je devais mettre en œuvre...

Discussions similaires

  1. boost 1.55, visual studio 2013 sous Windows 7
    Par r0d dans le forum Boost
    Réponses: 3
    Dernier message: 08/02/2014, 12h09
  2. [SP-2013] Web Performance Test : SharePoint / Visual Studio 2010
    Par copyallright dans le forum SharePoint
    Réponses: 1
    Dernier message: 10/12/2013, 11h29
  3. [Prob] Ecriture de test avec Visual Studio 2008
    Par hannibal.76 dans le forum Test
    Réponses: 0
    Dernier message: 05/06/2012, 11h12
  4. Les tests dans Visual Studio 2010
    Par hegros dans le forum Visual Studio
    Réponses: 3
    Dernier message: 21/05/2010, 21h52
  5. Réponses: 1
    Dernier message: 12/05/2009, 15h14

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