2012-11-09 6 views
1

J'ai récemment mis à jour mon ordinateur portable à Windows 8 afin que je puisse développer pour W8 et WP8. J'ai eu quelques projets qui ont été créés avec Visual Studio 2010 qui ont utilisé Boost.Test pour les tests unitaires. J'ai essayé de convertir les projets en projets VS2012, mais j'ai eu des problèmes, alors j'ai juste créé de nouveaux projets VS2012 en utilisant le même code source que précédemment. Cependant, chaque suite de tests unitaires génère une exception lorsque je l'exécute. Je l'ai débogué et j'ai constaté qu'il lançait l'exception lorsqu'il essayait de créer le rapport dans la méthode make_report dans results_reporter.ipp. La ligne incriminée esttests unitaires Boost lancer des exceptions dans Visual Studio 2012

case CONFIRMATION_REPORT: 
    s_rr_impl().m_formatter->do_confirmation_report(framework::get<test_unit>(id), *s_rr_impl().m_output); 

Quelque part dans le code il y a un objet map qui a une mauvaise mémoire, et donc l'exception. J'utilise Boost 1.50.0. J'ai aussi essayé la version la plus récente, 1.52.0, mais avec les mêmes résultats. VS2012 est-il bogué, ou y a-t-il un réglage/configuration que je ne connais pas, ou des différences de développement sous Windows 7 ou 8?

Modifier

Voici un test exemple qui jette une exception dans mon environnement avec VS2012 et Boost 1.50.0:

#define BOOST_TEST_MODULE exception.test 
#include <boost/test/unit_test.hpp> 

BOOST_AUTO_TEST_SUITE(SuiteTest) 

BOOST_AUTO_TEST_CASE(exceptionTest){ 
    BOOST_REQUIRE(true); 
} 

BOOST_AUTO_TEST_SUITE_END() 

Répondre

1

Cela se passait à cause de quelques remplacements globaux de new et delete cela devenait accidentellement importé via une autre classe de test dans mon projet.

+0

Comment avez-vous pu résoudre ce problème? Avoir le même problème. Utilisation de l'unité MStest et Boost. – Darkenor

Questions connexes