不做测试的开发就是耍流氓,bug率飚成那样,痛下决心好好搞搞自测T T,先从gtest入手。以前使用的都是cppunit,因为工程都比较大,一般都在开始前就已经有人把这个搭好了,所以其实也没什么机会自己搭一套,今天用gtest写了个超级简单的demo,感觉起来就是比cppunit门槛低太多了,CPPUNIT的main函数是见识过的,表示看得头都大了。
gtest是开源的,所以和其他开源软件一样的用法,由于今天环境已经配置好好的了,所以木有动手弄,决定明天来一遍。
先看gtest的几个重要文件:
./include/gtest/gtest.h //包含了所有的头文件,so,用的时候只要包含它就可以了
./src/gtest-all.cc //包含了所有的源文件,第一次见到这种用法╮(╯▽╰)╭
./src/gtest_main.cc //主函数
./lib/libgtest.so //编译出来的lib库,运行就靠它了
然后是最最简单的测试文件写法:
#include "gtest/gtest.h"
TEST(测试套名,用例名) //测试套名和用例名自己定,和被测函数是没有关系的。
{
//自由发挥,调用被测的函数
}
编译运行:
1、g++ -L 库路径 -I头文件路径 gtest_main文件 测试文件 被测文件 -lpthread -lgtest
2、export LD_LIBRARY_PATH=libgtest.so库所在路径
3、./a.out
编译时注意参数顺序,-lgtest必须放在最后(还没搞清楚为神马= =),另外-phtread也是必须的,运行前需要将libgtet.so所在的路径export进LD_LIBRARY_PATH,否则运行时会链接不到,今天就因为这些编译问题纠结了半天%>_<%