Ich lerne im Moment, wie ich die Boost-Test-Bibliothek verwende, und ich kann nicht scheinen, dass Test-Suites korrekt funktionieren. Im folgenden Code schlägt 'test_case_1' fehl, aber es wird gemeldet, dass er in der Master Test Suite statt in 'test_suite_1' enthalten ist.Boost-Unit-Testfehler in falscher Testsuite erkannt
Wer weiß, was ich falsch mache?
#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();
edit:
Ovanes' Antwort führte mich besser die Suite Hierarchie zu verstehen - in diesem Fall test_suite_1 ist eine Unter Suite der Root-Suite, die standardmäßig den Namen ist 'Master-Test-Suite'. Die Standard-Logging zeigt nur die Root-Suite, die nicht das ist, was ich erwartet habe :)
Sie können den Root-Suite-Namen festlegen, indem Sie BOOST_TEST_MODULE - so eine alternative Version des obigen Beispiels, die die gibt erwartete Fehlermeldung ist:
Ich bin froh, dass ich diese gefunden zu definieren, aber ich bin ganz auf dieses Verhalten gob-schmatzte . Da Sie "BOOST_TEST_MODULE" nur einmal verwenden können, heißt das nicht, dass es im Prinzip eine Suite pro Testdatei gibt? Und dass alle Testfehler als Mitglieder dieser Suite gemeldet werden, ohne Sub-Suite-Namen? Bestimmt vermisse ich hier etwas. Bearbeiten: Formatieren –