GTest学习笔记(二)

摘要:

这篇笔记主要是把在VS属性页中的设置直接放在CMakeLists.txt文件中,即构建项目后不需要打开sln文件进行设置

环境准备: CMake+Visual Studio

依赖项:gtestd.lib+gtest_maind.lib(使用GTest的源码在Debug模式下编译出的lib文件)

源码:

addIntegers.h

#pragma once
#include <iostream>
using namespace std;

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

test.cpp

#include <gtest/gtest.h>
#include"addIntegers.h"

TEST(testCase,test0)
{
	EXPECT_EQ(3,add(1,2));
}

TEST(testCase, test1)
{
	EXPECT_EQ(11, add(12, 3));
}

Project1.cpp

#include <iostream>
#include <gtest/gtest.h>
int main(int argc,char **argv)
{
    testing::InitGoogleTest(&argc,argv);
    return RUN_ALL_TESTS();
}

CMakeLists.txt

# set minimum cmake version
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)

# project name and language
project(demo1 LANGUAGES CXX)

# require C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# VS项目属性页->C/C++->代码生成->运行库->多线程调试(/MTd)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

# 类似宏定义,将两个路径变成两个变量
set(Include_path
D:/workspace/GoogleTest/googletest-release-1.10.0/googletest-release-1.10.0/googletest/include

)
set(Lib_path
D:/workspace/GoogleTest/googletest-release-1.10.0/googletest-release-1.10.0/googletest/build/lib/Debug

)
# VS项目属性页->C/C++->常规->附加包含目录
include_directories(${Include_path})
# 指定附加依赖项的目录
link_directories(${Lib_path})


add_executable(sum_up test.cpp addIntegers.h Project1.cpp)
# VS项目属性页->链接器->输入->附加依赖项
target_link_libraries(sum_up gtestd)
target_link_libraries(sum_up gtest_maind)


执行过程:

1.将源码按下列方式排列

.
├── addIntegers.h
├── CMakeLists.txt
├── Project1.cpp
├── test.cpp

2.在源码目录下进入PowerShell,执行cmake指令

$ mkdir build      		
$ cd build        	 	
$ cmake ..        	 	
$ cmake --build .  	     		
$ cd debug     	 	
$ ./sum_up

3.命令执行过程截图

在这里插入图片描述

注:

在执行完cmake …后可以打开构建出的sln文件,查看设置的项目属性是否成功;

在执行完cmake --build .后可以查看Debug文件夹下有没有生成相应的可执行文件来间接判断生成是否成功

内容如有错误,敬请指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值