ubuntu使用gtest单元测试框架
来源:互联网 发布:上海java培训班 编辑:程序博客网 时间:2024/06/07 23:16
转:http://ningning.today/2014/11/12/%E6%B5%8B%E8%AF%95%E5%BC%80%E5%8F%91/ubuntu%E4%BD%BF%E7%94%A8gtest%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E6%A1%86%E6%9E%B6/
最近接触了gtest,google的开源c++单元测试框架。讲一下在ubuntu上的使用步骤。
安装 gtest development package:
sudo apt-get install libgtest-dev
注意这一步只是安装源代码到/usr/src/gtest,需要用cmake构建Makefile然后再make生成静态库。
123456
sudo apt-get install cmake #安装cmakecd /usr/src/gtestsudo cmake CMakeLists.txtsudo makesudo cp *.a /usr/lib/ #拷贝生成的库到/usr/lib/
写一个简单的测试代码testgcd.cpp
123456789101112131415161718192021
//testgcd.cpp#include <gtest/gtest.h>int Gcd(int a, int b) //计算最大公约数{return 0 == b ? a : Gcd(b, a % b);}TEST(GcdTest, IntTest){EXPECT_EQ(1, Gcd(2, 5));EXPECT_EQ(2, Gcd(2, 5));EXPECT_EQ(2, Gcd(2, 4));EXPECT_EQ(3, Gcd(6, 9));}int main(int argc, char **argv){testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();}
接着用g++编译,注意要链接的库(也可以用cmake构建,这只是个简单的示例):
g++ testgcd.cpp -lgtest_main -lgtest -lpthread
执行下
./a.out
看看输出结果:
123456789101112131415161718
[==========] Running 1 test from 1 test case.[----------] Global test environment set-up.[----------] 1 test from GcdTest[ RUN ] GcdTest.IntTesttestgcd.cpp:11: FailureValue of: Gcd(2, 5)Actual: 1Expected: 2[ FAILED ] GcdTest.IntTest (0 ms)[----------] 1 test from GcdTest (0 ms total)[----------] Global test environment tear-down[==========] 1 test from 1 test case ran. (0 ms total)[ PASSED ] 0 tests.[ FAILED ] 1 test, listed below:[ FAILED ] GcdTest.IntTest1 FAILED TEST
输出结果也比较容易看懂。关于gtest更多文档和使用可以参考官方手册。
工程下的测试
当测试项目比较多的时候,一般会分离头文件和实现文件,然后可以用cmake构建。
1234567891011121314151617181920212223242526272829
//!gcd.h#ifndef GCD_H#define GCD_Hint Gcd(int a, int b);#endif//!gcd.cpp#include "gcd.h"int Gcd(int a, int b){return 0 == b ? a : Gcd(b, a % b);}//!testgcd.cpp#include "gcd.h"#include <gtest/gtest.h>TEST(GcdTest, IntTest){EXPECT_EQ(1, Gcd(2, 5));EXPECT_EQ(2, Gcd(2, 5));EXPECT_EQ(2, Gcd(2, 4));EXPECT_EQ(3, Gcd(6, 9));}int main(int argc, char **argv){testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();}
接下来写一个CMakeLists.txt:(具体信息参考cmake的文档)
123456
cmake_minimum_required(VERSION 2.6)# Locate GTestfind_package(GTest REQUIRED)include_directories(${GTEST_INCLUDE_DIRS})# Link testgcd with what we want to test and the GTest and pthreadlibraryadd_executable(testgcd testgcd.cpp gcd.cpp)target_link_libraries(testgcd ${GTEST_LIBRARIES} pthread)
执行:
123
cmake CMakeLists.txtmake./testgcd
可以看到相同的执行结果。
参考
Google C++ Testing Framework
Getting started with Google Test (GTest) on Ubuntu
A quick introduction to the Google C++ Testing Framework
0 0
- ubuntu使用gtest单元测试框架
- ubuntu使用gtest单元测试框架
- c++单元测试框架Gtest的简单配置与使用
- C++单元测试框架Gtest的配置与使用过程
- linux下使用gtest框架进行c/c++单元测试
- 单元测试框架GTest详细教程
- [单元测试]_[VC2010使用gtest单元测试入门]
- Google开源C++单元测试框架gTest 1:gTest安装编译
- Google开源C++单元测试框架gTest 2:gTest断言
- Google开源C++单元测试框架gTest 7:深入探索gTest
- gtest框架使用
- gtest框架的使用
- 玩转Google单元测试框架gtest系列
- 玩转Google单元测试框架gtest系列
- 开源C/C++单元测试框架 gtest
- 基于gtest和VS2008搭建单元测试框架
- Google开源C++单元测试框架Google Test(gtest)在C++Builder(xe5)下的使用-1
- gtest单元测试
- Photoshop设计软件APP图标的30个技巧
- javascript函数的高级写法
- Python List 常用 API
- 数组冒泡排序
- 第13周 项目5-4 统计每个数字出现的次数
- ubuntu使用gtest单元测试框架
- 八讲:TF/MicroSD 卡的 SDHC 标准与Class 速度等级详解
- 第十三周项目六 体验文件操作(1.1)
- C#实验12的123456合集
- Codeforces Round #278 (Div. 2) B. Candy Boxes
- Android.mk文件语法规范及使用模板
- 结转小记
- Unity3D 自动切割动画
- java23种常用设计模式之单例模式(Singleton)