J'apprends à utiliser la bibliothèque de test Boost pour l'instant, et je n'arrive pas à faire fonctionner correctement les suites de tests. Dans le code suivant, 'test_case_1' échoue correctement, mais il est signalé dans la suite de tests principale au lieu de 'test_suite_1'.Echec du test de l'unité Boost détecté dans la suite de tests incorrecte
Quelqu'un sait ce que je fais mal?
#define BOOST_AUTO_TEST_MAIN
#include <boost/test/auto_unit_test.hpp>
BOOST_AUTO_TEST_SUITE(test_suite_1);
BOOST_AUTO_TEST_CASE(test_case_1) {
BOOST_REQUIRE_EQUAL(1, 2);
}
BOOST_AUTO_TEST_SUITE_END();
modifier:
Ovanes de réponse m'a amené à comprendre la hiérarchie suite mieux - dans ce test_suite_1 cas est une sous-suite de la suite de la racine qui, par défaut est nommé Master Test Suite. La journalisation par défaut affiche uniquement la suite racine, ce qui n'est pas ce que j'attendais de pouvoir gérer :)
Vous pouvez définir le nom de la suite racine en définissant BOOST_TEST_MODULE - donc une version alternative de l'exemple ci-dessus qui donne le message d'erreur attendu est:
#define BOOST_TEST_MODULE test_suite_1
#define BOOST_AUTO_TEST_MAIN
#include <boost/test/auto_unit_test.hpp>
BOOST_AUTO_TEST_CASE(test_case_1) {
BOOST_REQUIRE_EQUAL(1, 2);
}
Je suis content d'avoir trouvé, mais je suis tout à fait gob-frappai à ce comportement . Puisque vous ne pouvez utiliser 'BOOST_TEST_MODULE' qu'une fois, cela ne signifie-t-il pas qu'il y a essentiellement une suite par test d'unité exécutable? Et que tous les échecs de test seront signalés en tant que membres de cette suite, sans aucun nom de sous-suite? Il me manque sûrement quelque chose ici. Modifier: formatage –