概述
一、编译和安装gtest
1.下载gtest
$git clone https://github.com/google/googletest.git
2.安装前准备
有两种编译安装方式,这里我用cmake编译。
(1)blade依赖scons,先安装scons
yum install scons
我这里yum安装失败,所以下载scons-3.1.1.tar.gz,解压编译安装
$wget http://prdownloads.sourceforge.net/scons/scons-3.1.1.tar.gz
$tar -zxvf scons-3.1.1.tar.gz
$cd scons-3.1.1
$python setup.py install --prefix=/opt/scons
安装成功后,添加到环境变量/etc/profile,source /etc/profile
export PATH="$PATH:/home/work/install/scons-3.1.1/bin"
(2)安装cmake
$yum install cmake
$yum install make
3.编译gtest
$cd googletest
$mkdir build
$cd build
$cmake .. //根据CMakelist.txt,gtest和gmock都会编译和安装
$sudo make && make install
//gtest.h默认在/usr/local/include/gtest/gtest.h
//libgtest.a默认在/usr/local/lib64/libgtest.a
linux默认是在/lib和/usr/lib下查找动态链接库,gtest默认生成库的位置不能查找到,有以下方法解决:
(1)修改/etc/ld.so.conf,添加/usr/local/lib64,执行ldconfig
(2)export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH,并且LD_LIBRARY_PATH优先于默认搜索路径
(3)拷贝库到/usr/lib下
二、使用gtest
Demo1:
#include<gtest/gtest.h>
int Add(int a, int b){
return a + b;
}
int Minus(int a, int b){
return a - b;
}
TEST(Operations, Add){
EXPECT_EQ(Add(2,3),5);
}
TEST(Operations, Minus){
EXPECT_EQ(Minus(4,2),2);
}
int main(int argc,char **argv){
testing::InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
}
$g++ test.cc -o test -lgtest -lpthread
$./test
Demo2:
class QueueTest : public ::testing::Test {
protected:
void SetUp() override {
q1_.Enqueue(1);
q2_.Enqueue(2);
q2_.Enqueue(3);
}
// void TearDown() override {}
Queue<int> q0_;
Queue<int> q1_;
Queue<int> q2_;
};
TEST_F(QueueTest, IsEmptyInitially) {
EXPECT_EQ(q0_.size(), 0);
}
TEST_F(QueueTest, DequeueWorks) {
int* n = q0_.Dequeue();
EXPECT_EQ(n, nullptr);
n = q1_.Dequeue();
ASSERT_NE(n, nullptr);
EXPECT_EQ(*n, 1);
EXPECT_EQ(q1_.size(), 0);
delete n;
n = q2_.Dequeue();
ASSERT_NE(n, nullptr);
EXPECT_EQ(*n, 2);
EXPECT_EQ(q2_.size(), 1);
delete n;
}
References:
[1] https://scons.org/doc/2.5.1/HTML/scons-user.html#chap-build-install
[2] https://www.cnblogs.com/helloworldcode/p/9606838.html
[3] https://github.com/google/googletest/blob/master/googletest/docs/primer.md
最后
以上就是可爱期待为你收集整理的gtest的安装和使用的全部内容,希望文章能够帮你解决gtest的安装和使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复