在公司用junit写Java测试用例,后来公司内部培训讲到boost test可以写C++的测试用例,再之前也听过一个同学讲他用Google的开源框架写测试用例。早就萌生了写C++单元测试的想法,说实话我是比较怕麻烦的,尤其是花了大把精力又弄不出个所以然的时候特受打击。正好笔记本重装了,想着装个vc或studio太麻烦了,还不如就装个eclipse算了,反正WIN7+eclipse+MinGW也可以写C++程序嘛。
eclipse+JDK那套我就不多说了,装MinGW也没有什么难度,除了装MinGW时间太真是久,我是通过eclipse-》help-》install new software-》work with:CDT - http://download.eclipse.org/tools/cdt/releases/galileo自动安装的,所以速度极慢,令人汗颜!凡是时间能解决的事都不是个事。
2014年3月21日周五晚上,回答家开始编译boost,先是到网上搜了一大堆的文章来看,现在回想起来是因为一开始的切入点就选错了,看的文章都是vc或studio下如何编译boost的。弄了一晚上毫无头绪。2014年3月22也就是今天,一大早起来继续弄,还是没有实质性进展。在我就快放弃去使用vc或studio的时候,《Eclipse+MinGW+Boost环境搭建成功》这篇文章又把我拉了回来,于是带着试最后一次的想法继续弄。
1、下载boost库,解压缩。用迅雷下载http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.zip/download?use_mirror=ncu,超快。
2、命令行输入:cd tools\build\v2\engine
build mingw
生成 bin.ntx86\bjam.exe
3、拷贝bjam.exe到boost解压目录下。
4、bjam --build-type=complete toolset=gcc stage。时间超久,我stage\lib下的第一个文件显示是13:41,而最后一个文件显示是18:29,我都不像网上其他人说的编译只需要一个小时左右,难道我电脑太差了。总之,时间能解决的事情都不是个事。
然后就补不及待去完成我的第一个c++测试用例编写了,我就是到网上拷了一段。
#define BOOST_TEST_MODULE MyTest
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE( test )
{
BOOST_CHECK( true );
}
int add( int i, int j ) { return i+j; }
BOOST_AUTO_TEST_CASE( my_test )
{
// seven ways to detect and report the same error:
BOOST_CHECK( add( 2,3 ) == 4 ); // #1 continues on error
BOOST_REQUIRE( add( 2,2 ) == 4 ); // #2 throws on error
if( add( 2,2 ) != 4 )
BOOST_ERROR( "Ouch..." ); // #3 continues on error
if( add( 2,2 ) != 4 )
BOOST_FAIL( "Ouch..." ); // #4 throws on error
if( add( 2,2 ) != 4 ) throw "Ouch..."; // #5 throws on error
BOOST_CHECK_MESSAGE( add( 2,2 ) == 4, // #6 continues on error
"add(..) result: " << add( 2,2 ) );
BOOST_CHECK_EQUAL( add( 2,2 ), 4 ); // #7 continues on error
}
编译之前,右键项目-》properties-》C/C++ Build-》settings-》Tool Settings
将解压目录作为Include path
将stage\lib作为库目录
并链接boost_test_exec_monitor-mgw48-1_55库,在stage\lib下能找到。
然后编译,运行就搞定了!弄完之后觉得好简单,自己弄的过程还是挺折腾的,所以记录一下。