目录
之前也接触过googleTest但是一直没有弄好,总是出各种各样的错误,今天下午再试了试结果还给搞定了。
首先是从GitHub上下载Googletest的源码,用cmake进行编译,准备工作就是先安装好cmake,这个很简单。然后就是通过cmake来编译googletest。这个折腾了我半天,这里我就再演示一边。我把编译好的Googletest删除重新弄一下。
下载
下载googletest
GitHub - google/googletest: GoogleTest - Google Testing and Mocking Framework
下载Cmake
编译GoogleTest
第一步:填写Googletest源码路径和编译完的输出路径。1是源码路径,2是输出路径。
这个就是
源码路径,不要弄错。
然后开始配置cmake
点击configure
1是你要编译的VS的版本,我这里是VS2015所以选这个。 根据自己的VS选择。选错了是不行的。
2是编译的位数,我是编译64位的选择x64,默认是32位的。3我也不知道为什么选择这个。
完成后就开始编译了。当然要是找不到就会出错,比如,你的VS是2015的结果你选择了VS2017版本的,Cmake找不到VS2017版本的编译器,所以就会出错。 稍等一会就编译完成。
这是编译完的,点击Generate即可
打开build文件夹(之前Cmake设置的路径)双击sln文件。
编译googleTest静态库,直接编译,debug和release都编译一下,看自己需求,我这里就只用debug了。
结果
编译完的结果:
添加到项目
然后把lib和include组合成一个库拷贝到你的项目中。这个是include目录
这个文件夹是我自己新建的把头文件和静态库放到这里然后拷贝到项目中。
我就以上次的项目demo为例了,
开始配置项目:
在Solution新建一个工程
我就用取名googleTest了,这个可以自己定义;
同理你想测试那个dll的函数你就添加那个,我这里测试test DLL的函数了。我添加了一个Add函数,我就测试这个函数。
配置工程:
2 中的头文件是包含了刚刚编译的googletest的头文件和要测试函数的头文件。
链接lib文件也是
再添加lib文件:
测试代码:
// googleTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <gtest\gtest.h>
#include "testDLL.h"
TestHellWorld th;
TEST(testCase, test0)
{
EXPECT_EQ(14, th.Add(4, 10));//EXPECT_EQ是比较两个值是否相等
}
TEST(testCase, test1)
{
/*本用例不过*/
EXPECT_EQ(6, th.Add(5, 7));
}
TEST(testCase, test2)
{
EXPECT_EQ(28, th.Add(10, 18));
}
int _tmain(int argc, _TCHAR* argv[])
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
return 0;
}
设置主启动项:
编译执行;