资料: 参考Boost库完全开发指南
之前都是手动管理各种测试用例, 一个测试用例放在一个文件夹中, 创建也麻烦, 管理起来很不方便. 正好在接触boost, 于是想以后尽量使用这个吧~.
按照文档中的说法, test库的hpp文件可以直接使用, 也可以编译了再使用. 先用bjam编译了一把, 弄出一大坨dll和a文件, , , , 尴尬的是布吉岛mingw该怎么用, , , , T_T. 于是使用另外一种方法使用test库, 也是Boost库完全开发指南上面推荐的一种方法.
首先建立一个cpp文件test_main.cpp, 里面只有两行代码:
1 #define BOOST_TEST_MAIN 2 #include <boost/test/included/unit_test.hpp>
上面#include的那个hpp文件包含了unit_test库的所有实现.
test_main.cpp起到辅助编译test库的作用, 里面的内容不应该变动.
然后建立一个写测试用例的cpp文件, 比如, 名字叫做main.cpp
1 #include <boost/test/unit_test.hpp> 2 using namespace boost; 3 4 BOOST_AUTO_TEST_SUITE(s_hello) 5 6 BOOST_AUTO_TEST_CASE(t_hello) 7 { 8 BOOST_CHECK(true); 9 } 10 11 BOOST_AUTO_TEST_SUITE_END()
然后同时编译这两个cpp文件. makefile如下:
a.exe:main.cpp test_main.cpp
g++ test_main.cpp main.cpp -I D:/workplace/tools/boost_1_49_0 -std=c++0x
然后编译的时候会遇到一个错误, , , ,
google了一下, putenv是stdlib.h中的函数, 用来添加环境变量的~~
打开报错的那个config.hpp, 看见硕大的一个cstdlib就在上面~~. 既然gcc有点抽风, 索性手一贱就把putenv注释掉了~~嘛, 然后就可以用了~~目前为止倒是表现良好的说~~
补充说明, 文章上面的情况出现在开发环境win7+mingw4.4+boost1.49.0中. 但是在linux中倒是木有使用修改Boost代码这种极端的手段, , , , ,