Codeblocks下搭建gtest框架
Gtest需要先编译才能使用。
一、编译gtest
(1) 使用cmake-gui生成codeblocks工程
下载下来的gtest如下:
Gtest中有VS工程,如打开gtest-1.6.0\msvc目录下有gtest.sln,这就是VS工程,可以用VS直接编译。但是并没有codeblocks工程,所以我们要先生成codeblock工程。
我们使用的是cmake-gui,安装文件为:
在图上这两个框中填入路径,”Where is the source code”中填入的是gtest的路径,”Where to build the binaries”中填入的是你要生成的codeblocks工程的路径,如我在gtest路径下新建目录mybuild-codeblocks-mingw。
然后点击界面下的configure,如下图,选择生成codeblocks的makefile,
勾选gtest_disable_pthreads,再点configure,结束后再点Generate,就会在你的路径生成codeblocks工程,
用codeblocks打开,并build。
编译gtest的目的是生成库文件,libgtest.a,在后面的工程中使用该库文件。
二、建立gtest工程
2.1 建立工程
此处选择C++,
文件结构为: _ source-
- code|
| - include
|
Reconstitution |
| _codetest
- ft_prj |
- testcases
|
- stub
如果要增加文件,选中工程,右键Add files即可。
2.2 工程配置
main.cpp中代码为:
#include <iostream>
#include "gtest/gtest.h"
using namespace std;
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
system("PAUSE");
return 0;
}
test.cpp中代码为:
#include "gtest\gtest.h"
#include "demo.h"
struct TestFix:testing::Test{
void SetUp()
{
}
void TearDown()
{
}
};
TEST_F(TestFix,test1)
{
int ret=0;
ret = first(10);
EXPECT_EQ(11,ret);
ASSERT_EQ(11,ret);
};
其中first()函数为code路径下的一个测试函数,头文件”demo.h”里有这个函数的申明。
右键工程,选择build options:
清除Compiler settings > Compile Flags下与-std=有关的复选框
点击选项卡Compiler settings > Other options,在对话框中填写-std=gnu++11
在Linker settings > Other linker options下填写-lgtest
在linker settings->link libraries里add之前编译的库文件。
在search directories->compiler里增加gtest-1.6.0\include路径,另外还要增加搜索自己代码头文件的路径,如code->include,stub->include。
在search directories->linker增加库文件libgtest.a所在的路径。
最后选择工程,右键build,即可编译工程。运行:
以后在此基础上,可以增加测试用例。