google test 安装

Google Test (libgtest) 是由谷歌开发的一款基于xunit框架的跨平台单元测试框架,C#上的NUnit,Java的JUnit写单元测试非常容易,也不乏可视化工具与IDE集成插件,深受喜欢测试区洞开发的程序员的喜爱。但对于C++来说,写测试就看着麻烦一些。但如果用习惯了,google test还是不错的。google test更多的信息这里就不赘述了。下面根据我的实践,总结以下安装和第一次编写google test所需要做的事情,网上虽然有些教程,但我遇到的问题往往要综合很多篇文章才能解决。这里我根据自己的实践,综合了几篇文章里的方法,结合ubuntu系统,写了一个更详细的介绍。

Step1.首先下载安装google test
对于ubuntu系统,可直接从软件源里下载更新libgtest-dev
或者 sudo apt-get install libgtest-dev
这样会自动把googtest的头文件安装到/usr/include/gtest目录下,而源文件在/usr/src/gtest目录下

也可以自己从https://googletest.googlecode.com上下载gtest的最新版本,不过google code网站经常被墙,到时候可以考虑从别的地方下载。
比如对于1.6.0版本,wget gtest-1.6.0.zip https://googletest.googlecode.com/files/gtest-1.6.0.zip
然后解压:
假定下载到根目录下,直接:
user@linux-name:~ unzipgtest1.6.0.zipuser@linuxname:  cd gtest-1.6.0

另外,把下载的gtest源代码下面的include/gtest目录拷贝到全局头文件目录,如:

user@linux-name:~/gtest-1.6.0 cprinclude/gtest/usr/local/include/user@linuxname: /gtest1.6.0 cp -r include/gtest /usr/include/
然后在用到gtest的文件中,用#include

pragma once

int fun(int a, int b);

sample.cpp
[cpp] view plain copy

include”sample.h”

int fun(int a, int b)
{
return (a-b);
}

test.cpp这里我们用了四种ASSERTION(断言)方法,给初学者一个印象,具体gtest的各种断言用法还要参考gtest文档
[cpp] view plain copy

include “gtest\gtest.h”

include “sample.h”

//TEST (gtest macro),fun:function name to test, “case1” test case name
TEST(fun, case1)
{
EXPECT_LT(-2, fun(1, 2));
EXPECT_EQ(-1, fun(1, 2));
ASSERT_LT(-2, fun(1, 2));
ASSERT_EQ(-1, fun(1, 2));
}

/*
int _tmain(int argc, _TCHAR* argv[])
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
*/

Step3. 编译要测试的代码(假设文件名为sample.cpp)

g++ -c sample.cpp

Step4. 编译单元测试的代码(假设文件名为test.cpp)

g++ -c test.cpp

Step5. 与libgtest.a或其他需要的库链接、生成可执行程序

g++ test.o sample.o libgtest.a -o test -lpthread

-lpthread是必须要有的,否则链接时会出错gtest-all.cc:(.text._ZNK7testing8internal11ThreadLocalIPNS_31TestPartResultReporterInterfaceEE16GetOrCreateValueEv[_ZNK7testing8internal11ThreadLocalIPNS_31TestPartResultReporterInterfaceEE16GetOrCreateValueEv]+0x7a): undefined reference to `pthread_setspecific’

Step6. 运行生成的test文件,可输出测试结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值