Ubuntu18.04环境下Gtest框架安装测试

这篇具有很好参考价值的文章主要介绍了Ubuntu18.04环境下Gtest框架安装测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备

在安装Gtest框架之前在linux上安装好cmke、g++工具。
sudo apt-get install cmake
sudo apt-get install g++

方法一:下载Gtest压缩包解压安装

最新版本的Gtest下载链接:https://github.com/google/googletest
可以选择自己下载解压安装,下载的安装包为.ZIP文件时,下载unzip工具进行解压。

sudo apt-get install unzip
unzip googlegtest-xxx.zip

也可以创建一个文件夹使用命令行自动打包下载,一般习惯创建一个新的文件夹作为下载目录。

cd /
mkdir ./workspace
cd workspace
git clone https://github.com/google/googletest

下载之后进入googletest文件夹,新建一个文件夹build用于存放相关make操作会生成的文件和静态库。

cd googlegtest-xxx
mkdir build
cd build
cmake ..
make
sudo make install

安装完成之后,查看/usr/local/lib路径下是否存在libgtest.a和libgtest_main.a文件,可以手动copy。

cp /workspace/googlegtest-xxx/build/lib/libgtest*.a /usr/local/lib

对安装好的gtest框架进行测试。
新建一个文件夹用于存放gtest测试源码

mkdir /workspace/test_unit && cd /workspace/build
vim gtest.cpp

使用vim编辑器之前需要安装vim,sudo apt-get install vim

测试样例gtest.cpp:

#include <gtest/gtest.h>

int add (int a ,int b)
{
    return a+b;
}

TEST(Operations,ADD)
{
    EXPECT_EQ(6,add(2,4));
    EXPECT_EQ(8,add(3,5));
    EXPECT_EQ(17,add(9,9));
    EXPECT_EQ(0,add(1,1));
}

int main(int argc,char **argv){
  testing::InitGoogleTest(&argc,argv);
  return RUN_ALL_TESTS();
}

编译运行:g++ gtest.cpp -lgtest -lpthread -o gtest

运行结果:
Ubuntu18.04环境下Gtest框架安装测试
Gtest框架安装完成。

方法二:使用apt-get工具安装

刚刚接触Gtest时,在Ubuntu18.04环境下使用方法一安装,安装之后对Gtest框架进行测试时存在版本不兼容的问题,测试源码编译之后无法链接-lgtest和-lgtest_main库。
Ubuntu18.04环境下Gtest框架安装测试
这里介绍第二种解决办法,使用apt-get工具安装。

sudo apt-get install libgtest-dev

进入/usr/src目录下查看是否存在gtest和googlegtest文件夹,如果存在并且可以访问则进入下一步,否则可以卸载重新安装:sudo apt-get autoremove libgtest-dev

但是使用这个方法也遇到了方法一种-lgtest和-lgtest_main不兼容的问题,可以在安装命令行之后添加cmake约束。

sudo apt-get install libgtest-dev cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib

安装完成,可以按照方法一中的样例进行测试。

方法三、直接使用gtest的头文件和生成的静态库进行单元测试

新建一个文件夹,然后下载gtest源码,使用cmake和make生成gtest静态库。

cd /
mkdir ./workspace
cd workspace
git clone https://github.com/google/googletest
cd googletest
mkdir build
cmake ..
make

/googletest/googletest/include/gtest目录下是gtest的头文件,在/googletest/build/lib目录下是gtest生成的静态库*.a文件。
/workspace下新建文件夹test_unit作为项目总路径。
项目文件目录

|--test_unit
|  |
|  +--gtest.cpp
|  |
|  +--include
|    +--gtest
|        +--*.h
|  |
|  +--lib
|    +--*.a

下载后,将gtets的头文件和静态库复制到test_unit相应的路径下。

cd /workspace
mkdir test_unit && cd test_unit
mkdir lib
mkdir include
cp -rf /workspace/googletest/googletest/include/gtest ./include
cp /workspace/googletest/build/lib/*.a ./lib

gtest.cpp的样例代码:

#include<gtest/gtest.h>
// Returns true iff n is a prime number.
bool IsPrime(int n)
{
    // Trivial case 1: small numbers
    if (n <= 1) return false;

    // Trivial case 2: even numbers
    if (n % 2 == 0) return n == 2;

    // Now, we have that n is odd and n >= 3.

    // Try to divide n by every odd number i, starting from 3
    for (int i = 3; ; i += 2) {
        // We only have to try i up to the squre root of n
        if (i > n/i) break;

        // Now, we have i <= n/i < n.
        // If n is divisible by i, n is not prime.
        if (n % i == 0) return false;
    }
    // n has no integer factor in the range (1, n), and thus is prime.
    return true;
}

class IsPrimeParamTest : public::testing::TestWithParam<int>
{
};

TEST_P(IsPrimeParamTest, HandleTrueReturn)
{
    int n =  GetParam();
    EXPECT_TRUE(IsPrime(n));
}

INSTANTIATE_TEST_CASE_P(TrueReturn, IsPrimeParamTest, testing::Values(3, 5, 11, 16 ,19 ,21 , 23, 17));

手动链接gtest的头文件和静态库:

g++ gtest.cpp -I ./include/gtest -L ./lib -lgtest_main -lgtest -lpthread -o gtest

其中g++ -I为编译程序按照-I指定的路径去搜索头文件;g++ -L为编译程序按照-L指定的路进去寻找库文件。
测试结果为:
Ubuntu18.04环境下Gtest框架安装测试
直接调用Gtest头文件和静态库成功。文章来源地址https://www.toymoban.com/news/detail-409096.html

到了这里,关于Ubuntu18.04环境下Gtest框架安装测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在Ubuntu 18.04上安装PHP 7.4并搭建本地开发环境

    PHP是一种流行的服务器脚本语言,用于创建动态和交互式web页面。开始使用你选择的语言是学习编程的第一步。 本教程将指导您在Ubuntu上安装PHP 7.4,并通过命令行设置本地编程环境。您还将安装依赖管理器Composer,并通过运行脚本来测试您的安装。 要完成本教程,您需要安

    2024年02月11日
    浏览(54)
  • 【ROS2 入门】虚拟机环境 ubuntu 18.04 ROS2 安装

             大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,做为有别于ROS1的版本,做了很多更新和改变,我还是很期待自己逐步去探索ROS2中的惊喜。在安装过程中我也遇到的一些坑,我自己也尝试填了一部分,未必是全部,但是相信集合大

    2024年01月17日
    浏览(46)
  • ubuntu18.04安装Realsense D435i相机SDK及realsense-ros记录,为后期运行yolo v5作准备

    写在前面 :一定要注意各个版本之间的匹配问题,否则会报各种错误。 例如ROS版本和librealsense SDK版本之间的对应关系,以及realsense-ros(Wrapper)与librealsense SDK之间的对应关系 。 系统:ubuntu18.04 ros: melodic 附上Intel® RealSense github网站: https://github.com/IntelRealSense 以及安装教程

    2024年02月05日
    浏览(40)
  • ubuntu18.04查询opencv库路径,检查Opencv有无正确设置环境变量,以及卸载和安装教程

    1. 打开终端或命令提示符 2. 输入以下命令来查询OpenCV库的路径:    这个命令将返回OpenCV库的链接选项,其中包含库的路径信息。 3. 查找返回结果中的`-L`选项,后面跟着的路径就是OpenCV库的路径。    例如,如果返回结果中有`-L/usr/local/lib`,那么`/usr/local/lib`就是OpenCV库的路

    2024年02月08日
    浏览(37)
  • 【ZED&SLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试

    笔记本电脑i5-8300H、GTX 1060、32G RAM 后续一些工作转移到了PC上:i7-12700 因为后面要测试Vins-Fusion和ORB-SLAM3,所以推荐安装 Ubuntu 18.04(或者Ubuntu 20.04) + ROS 1 (不建议用比Ubuntu18更低的版本) ROS一键安装命令: ZED 2i:双目相机配有9轴IMU 此前电脑已经配置好:Ubuntu 18.04,ROS 1,

    2024年01月18日
    浏览(37)
  • ubuntu18.04环境搭建

    sudo apt install make sudo apt install make-guile 运行Ubuntu的主机 打开终端,输入【sudo apt update】命令。 输入密码,确认授权。 输入【sudo apt install git】命令。 输入【Y】,确认命令执行。 输入【git --version】命令,查看安装版本。 Git当前版本为【2.30.2】,就此安装完成。 打开Ubuntu终端

    2023年04月22日
    浏览(93)
  • Ubuntu 18.04开发环境搭建

            工作不易,为了避免未来需要重装系统的进行折腾,个人进行了Ubuntu环境配置的整合,方便自己未来能顺畅的配置好开发环境,同时分享给大家。本文多出有转载其他文,并相应的标注了转载内容,如有侵权请联系博主删除。 vmware下载: 链接:https://pan.baidu.com

    2024年02月02日
    浏览(41)
  • Ubuntu18.04搭配无人机仿真环境(ROS,PX4,gazebo,Mavros,QGC安装教程)

    我个人使用了代理环境进行下载。Linux没有代理的可以使用国内源。 清华大学源 sudo sh -c ‘. /etc/lsb-release echo “deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main” /etc/apt/sources.list.d/ros-latest.list’ 中科大源 sudo sh -c ‘. /etc/lsb-release echo “deb http://mirrors.ustc.edu.cn/ros/ubu

    2024年02月13日
    浏览(37)
  • Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置

    最近因为学习开发需要,要开始接触一些视觉相关的内容,拿到了一个Inter 的D435i深度相机,记录一下在Ubuntu18环境下配置SDK 包的历程 注意 : Intel官方最新版的librealsense版本与ROS1的ROS Wrapper是 版本不一致的 ,且ROS Wrapper支持的是较低版本的SDK ,具体可以去网站查看 如果完全

    2024年02月07日
    浏览(39)
  • Linux系统 Ubuntu18.04安装的详细教程(提供18.04ubuntu镜像)

    镜像文件下载: 链接:https://pan.baidu.com/s/12bEdRBwO1YbLt23QKnrSrA 提取码:h7as 关于全名、用户名区别可先看第四部分 处理器和内核数量,根据需要配置就行。我是8核16线程,配置2,2。小白学习的话,配置低一点没关系。如果你只是为了学一些基础命令,配置成1,1应该也没问题

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包