FWIW, das funktioniert für mich:
#define BOOST_TEST_MODULE foo
#include <boost/test/included/unit_test.hpp>
namespace utf = boost::unit_test;
void setup() { BOOST_TEST_MESSAGE("set up fun"); }
void teardown() { BOOST_TEST_MESSAGE("tear down fun"); }
BOOST_AUTO_TEST_SUITE(bar, *utf::fixture (&setup, &teardown))
BOOST_AUTO_TEST_CASE(test1) {
BOOST_TEST_MESSAGE("running test1");
BOOST_TEST(true);
}
BOOST_AUTO_TEST_CASE(test2) {
BOOST_TEST_MESSAGE("running test2");
BOOST_TEST(true);
}
BOOST_AUTO_TEST_SUITE_END()
Running:
$ clang++ -I/usr/local/include test.cpp && ./a.out --log_level=all
Running 2 test cases...
Entering test module "foo"
test.cpp:9: Entering test suite "bar"
set up fun
test.cpp:11: Entering test case "test1"
running test1
test.cpp:13: info: check true has passed
test.cpp:11: Leaving test case "test1"; testing time: 56us
test.cpp:16: Entering test case "test2"
running test2
test.cpp:18: info: check true has passed
test.cpp:16: Leaving test case "test2"; testing time: 36us
tear down fun
test.cpp:9: Leaving test suite "bar"; testing time: 148us
Leaving test module "foo"; testing time: 244us
...
Beachten Sie den Aufruf von Setup bevor die Suite ausgeführt wird und der Anruf am Ende Teardown.
Die Seite verknüpft auch "Hinweise" [wo] (http://www.boost.org/libs/test/doc/html/boost_test/utf_reference/test_org_reference/decorator_fixture.html) Sie können ein komplettes Beispiel für eine finden Testmodul, das diese Modelle verwendet. – llonesmiz
Ja, ich habe dieses Beispiel gesehen (wenn wir über die gleiche Sache sprechen), aber es verwendet die freien Funktionen, um eine Fixture zu konstruieren, die in einem Testfall verwendet wird, nicht in einer Suite. Nach dem Lesen des Quellcodes scheint es jedoch, dass das Gleiche für eine Testsuite funktionieren würde. Nicht sicher, ob es koscher ist, eine Antwort auf meine Frage hinzuzufügen. – Engineerist
Es ist vollkommen in Ordnung (und ermutigt), Ihre eigene Frage zu beantworten, wenn Sie eine Lösung für das Problem gefunden haben, besonders wenn es zukünftigen Lesern helfen kann. – llonesmiz