我正在使用 Boost 1.61,并且正在使用以下类型的 Boost 测试设置,我在其中手动注册测试:
// testsuite.cpp
#include <boost/test/unit_test.hpp>
using boost::unit_test::test_suite;
test_suite* init_unit_test_suite(int, char* []) {
test_suite* test = BOOST_TEST_SUITE("TestSuiteName");
test->add(FooTest::suite());
return test;
}
// foo.hpp
#include <boost/test/unit_test.hpp>
using boost::unit_test::test_suite;
class FooTest {
public:
static void testFoo1();
static void testFoo2();
static test_suite* suite();
}
// foo.cpp
#include <foo.hpp>
void FooTest::testFoo1() {
// testFoo1 implementation
}
void FooTest::testFoo2() {
// testFoo2 implementation
}
test_suite* FooTest::suite() {
test_suite* suite = BOOST_TEST_SUITE("FooTest");
suite->add(BOOST_TEST_CASE(&FooTest::testFoo1));
suite->add(BOOST_TEST_CASE(&FooTest::testFoo2));
return suite;
}
我想向FooTest 测试套件添加一个进入/退出装置,如此处所述。Boost Test 文档在自动注册测试的上下文中描述了此功能。
我可以在手动注册测试的设置中使用此进入/退出夹具功能吗?如果没有,是否有人建议我如何模仿这种行为,即在进入 FooTest 测试套件时构建一个对象,该对象可用于测试套件中的所有测试,然后在退出 FooTest 套件时被破坏?
此处提出了类似的问题,但我找不到可以使用的答案。