C++ 如何在所有测试用例之后运行函数BOOST c++;
我有一个问题,我在思考;如果C++中的Boost库中有任何宏,那么在<强> > >强>测试用例之后,它将运行一次函数。我想运行一个函数,它将创建一个JSON文件,没有执行的测试的次数、通过的测试号和所有测试的数量。所以我有这个问题,因为我必须处理以特定方式构建的文件:C++ 如何在所有测试用例之后运行函数BOOST c++;,c++,unit-testing,boost,C++,Unit Testing,Boost,我有一个问题,我在思考;如果C++中的Boost库中有任何宏,那么在 > >强>测试用例之后,它将运行一次函数。我想运行一个函数,它将创建一个JSON文件,没有执行的测试的次数、通过的测试号和所有测试的数量。所以我有这个问题,因为我必须处理以特定方式构建的文件: f1() f2() f3() 增压自动测试案例(f1){} 增压自动测试用例(f2){} 增压自动测试用例(f3){} 因此,我无法创建main()函数,因为我收到一个错误,即在/boost/test/unit_test.hpp中有以前
f1()
f2()
f3()
增压自动测试案例(f1){}
增压自动测试用例(f2){}
增压自动测试用例(f3){}
因此,我无法创建main()函数,因为我收到一个错误,即在/boost/test/unit_test.hpp中有以前的声明
先谢谢你。问候。解决此问题至少有两种可能的方法 第一种方法是使用,或者更具体地说是使用
#定义BOOST_测试_模块示例
#包括
结构夹具{
Fixture(){/*启动时运行*/}
~Fixture(){/*在拆卸时运行*/}
};
助推器(全球)固定装置(固定装置);
增压自动测试用例(测试用例)
// ... 等等
另一个选项是使用库中为提供的功能,以便您可以在尝试时使用自己的
main()
。OT:这可能与主题无关,因为问题明确提到了BOOST库
我个人的经验是,有C++的单元测试框架,实际上更适合C++语言(利用C++语言本身;不盲目复制旧的单元测试框架设计),更容易配置(只复制一个文件,而不需要外部依赖),而且更容易使用
看看单元测试框架。它还很好地支持测试驱动开发和行为驱动开发
(例如,经过一些评估后,该项目最近从BOOST切换到Catch。现有的测试几乎可以机械地重写——通过编辑器工具进行替换。)您正在寻找——可能是一个,或者,如果您想实际创建一个
main()
,有一种方法可以@DanMašek,谢谢!我测试过了,这就是我想要的!好的,我会写下来作为回答。
#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