google test 安装

来源:互联网 发布:淘宝比熊犬多少钱 编辑:程序博客网 时间:2024/06/17 10:01

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.0cprinclude/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文件,可输出测试结果。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 培养教育 教育系统 河南教育 济宁教育 海南教育 教育就是 思学教育 云南教育 沈阳教育 创思教育 体验式教育 推动教育 教育吧 海淀教育 福建教育 福州教育 赛思教育 教育综合 教育101 新疆再教育 金华教育 教育收费 陕西教育 嗨学教育 恩波教育 立学教育 弘诚教育 知点教育 加强教育 教育情况 浩海教育 教育与教育学 大同教育 新科教育 教育装备 教育学 勤学教育 快学教育网 晋中教育 江苏省教育 如何教育