如何在所有测试用例 BOOST C++ 之后运行函数

Luq*_*Luq 2 c++ boost unit-testing

我有一个问题,我在思考;如果 C++ BOOST 库中有任何宏、功能,它将在所有测试用例之后运行一次函数。

我想运行一个函数,该函数将创建一个没有 json 文件的函数。已执行的测试,没有。通过测试的数量和数量。所有测试。所以我有这个问题,因为我必须使用以特定方式构建的文件:

f1()
f2()
f3()
BOOST_AUTO_TEST_CASE(f1){}
BOOST_AUTO_TEST_CASE(f2){}
BOOST_AUTO_TEST_CASE(f3){}

所以我无法创建 main() 函数来为我做到这一点,因为我收到一个错误,表明 /boost/test/unit_test.hpp 中有一个先前的声明。

先感谢您。问候。

Dan*_*šek 5

解决这个问题至少有两种可能的方法。

第一种是使用固定装置,或更具体地说是全局固定装置

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

struct Fixture {
  Fixture()   { /* Run on startup */ }
  ~Fixture()  { /* Run on tear down */ }
};

BOOST_GLOBAL_FIXTURE(Fixture);

BOOST_AUTO_TEST_CASE(test_case)
// ... and so on
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用库中提供的功能来覆盖入口点,以便您可以按照自己的main()尝试使用自己的功能。