2010-11-11 12 views
5

J'utilise boost::test pour exécuter des tests d'intégration sur une classe qui crée des répertoires et des fichiers. Je voudrais que ces fichiers soient nommés spécifiques aux cas de test, donc si je rencontre des problèmes, je peux facilement trouver quel test a laissé ses répertoires/fichiers. Donc, je voudrais utiliser le nom du cas de test dans le constructeur de l'appareil que j'utilise, comme démontré ci-dessous. Est-ce possible du tout, et comment? J'ai cherché dans le manuel boost :: test mais je n'ai pas trouvé cette information.en utilisant le nom du test dans les noms de fichier de sortie

par exemple.

struct foo_fixture 
{ 
    foo_fixture() 
    { 
     std::string case_dependent_name(BOOST_TEST_CASE_NAME); 
     create_directory(case_dependent_name); 
    } 
}; 

BOOST_FIXTURE_TEST_CASE (foo_case_one, foo_fixture) 
{ 
    ... 
} 
BOOST_FIXTURE_TEST_CASE (foo_case_two, foo_fixture) 
{ 
    ... 
} 

Répondre

7

Je trouve cela, et il fonctionne:

boost user group discussion

Essentiellement, vous utilisez la variable membre de chaîne trouvée sur l'instance test_unit:

boost::unit_test::framework::current_test_case().p_name 
+0

Tu es mon héros. –