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 : comment ajouter du code au main ?


Sujet :

Boost C++

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2008
    Messages : 28
    Points : 19
    Points
    19
    Par défaut boost test : comment ajouter du code au main ?
    Bonjour,

    Je suis en train d'écrire une série de tests de classes qui produisent des logs avec log4cxx.
    J'arrive a activer et configurer les logs dans les tests en faisant dans chaque fichier de test :
    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
    #include <boost/test/unit_test.hpp>
    #include "com/foo/Toto.h"
    using namespace com::foo;
    #include <log4cxx/propertyconfigurator.h>
    
    struct TotoTestsFixture {
        TotoTestsFixture(){
            log4cxx::PropertyConfigurator::configure("log.conf");
            ...
        }
        ~TotoTestsFixture(){
            ...
        }
        ...
    }
    BOOST_FIXTURE_TEST_SUITE(TotoTestsSuite, TotoTestsFixture )
    BOOST_AUTO_TEST_CASE( testSomething ){
        ...
    }
    ...
    BOOST_AUTO_TEST_SUITE_END()
    Par contre, je n'arrive pas à sortir la configuration des logs de chaque TEST_SUITE pour la centraliser dans le fichier qui contient #define BOOST_TEST_MAIN.
    J'ai essayé de créer des fonctions cpp_main et test_main pour placer mon instruction PropertyConfigurator::configure("log.conf");, mais rien n'y fait.

    La vraie question au final est comment modifier le comportement du main contenu dans BOOST_TEST_MAIN ?

    Merci par avance

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2008
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Je viens de trouver une solution de contournement.
    Création d'un fichier Log.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <log4cxx/propertyconfigurator.h>
     
    struct Log {
    	Log(){
    		log4cxx::PropertyConfigurator::configure("log.conf");
    	}
    };
    Puis modification des fichiers TotoTests.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <boost/test/unit_test.hpp>
    #include "com/foo/Toto.h"
    using namespace com::foo;
    #include "Log.h"
    
    struct TotoTestsFixture : Log {
        TotoTestsFixture(){
            ...
        }
        ...
    }
    ...
    Ca permet de centraliser la gestion des logs, mais çà ne répond pas à ma question initiale : Comment modifier le comportement du main de boost test ?

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Il te suffit de définir une fonction ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ::boost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] )
    {
        return 0;
    }
    Et d'y mettre les traitements que tu veux réaliser avant de démarrer les tests.

    edit : pardon ça ne répond pas réellement à ta question puisque ça ne permet pas de modifier le 'main' par défaut, je pense que pour faire ça il vaut mieux ne pas utiliser les 'auto-tests' du coup...

    MAT.

Discussions similaires

  1. Comment ajouter du code CS dans VB ?
    Par jjcasalo dans le forum VB.NET
    Réponses: 18
    Dernier message: 21/10/2011, 10h14
  2. Comment ajouter ce code pour afficher l'heure
    Par makin_toch dans le forum ASP.NET
    Réponses: 11
    Dernier message: 22/04/2011, 16h48
  3. Comment ajouter du code sur un événement "onbeforeunload"?
    Par Nixar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/11/2010, 13h13
  4. comment ajouter un code a mon programme?
    Par PDelph7 dans le forum Delphi
    Réponses: 4
    Dernier message: 06/06/2007, 11h05
  5. Comment ajouter du code a la suite ?
    Par maximenet dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 03/02/2006, 11h52

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