use*_*310 33 c++ eclipse googletest
我已下载谷歌测试,但现在我不知道如何将它链接到我在Eclipse中的项目.我应该将它添加为源文件夹吗?应该包含它作为g ++包含的库?那我该怎么办呢?
Jos*_*ver 39
使用Riga的优秀答案,以下是我如何使用它的总结:
./scripts/fuse_gtest_files.py . <project-dir>/contribcontrib从Release构建配置中排除目录,并添加<project-dir>/contrib到include目录(奇怪,我知道)src目录并添加了一个名为的类Foo(请参阅下面的内容Foo.h- 我Foo.cpp现在留空)test在Eclipse中添加了一个目录,将其从发布构建配置中排除,添加<project-dir>/contrib到包含目录,并添加了新的源文件FooTest.cpp和AllTests.cpp(参见下面的内容)foo.h中:
#ifndef FOO_H_
#define FOO_H_
class Foo {
public:
virtual ~Foo();
Foo();
bool foo(void) { return true; }
};
#endif /* FOO_H_ */
Run Code Online (Sandbox Code Playgroud)
FooTest.cpp:
#include "gtest/gtest.h"
#include "Foo.h"
namespace {
class FooTest : public ::testing::Test {
protected:
Foo foo;
};
TEST_F(FooTest, Foo) {
ASSERT_TRUE(foo.foo());
}
}
Run Code Online (Sandbox Code Playgroud)
AllTests.cpp:
#include "gtest/gtest.h"
#include "FooTest.cpp"
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)
以下是详细步骤:
cd /tmpwget http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2cd gtest-1.5.0/./scripts/fuse_gtest_files.py . <project-dir>/contribcontrib文件夹,选择Exclude from build ...*,仅取消选中**Release框,然后单击OK.contrib文件夹,然后选择属性 > C/C++生成 > 设置 > 工具设置选项卡> GCC C++编译器 > 目录<project-name>/contrib并单击确定以添加目录src其名称,然后单击OKsrcProject Explorer窗格中的文件夹,选择New > Class,将其命名Foo,然后单击OK(参见上面的内容Foo.h; Foo.cpp可以保留原样)test其名称,然后单击OK<project-name>/contrib和<project-name>/src包含目录到test目录test文件夹,然后选择新建 > 源文件以添加AllTests.cpp到该test文件夹,然后重复相同的步骤添加FooTest.cpp(参见上面的内容)FooTest.cpp并选择" 从构建中排除...",单击"全选"按钮,然后单击"确定"run*_*run 27
步骤1安装Eclipse
如果计算机上尚未安装Eclipse,则从Eclipse下载页面(http://www.eclipse.org/downloads/)获取最新版本的C/C++开发人员Eclipse IDE .
如果已安装Eclipse但仅适用于Java,请按照这些说明下载C++插件.
一个.打开Eclipse并单击Help-> Install New Software

湾 在"使用:"框中,键入http://download.eclipse.org/tools/cdt/releases/kepler.片刻之后,将填充"名称"框.选择以下组件:

C.单击Next,同意语句,然后单击Finish.
第2步下载Cygwin
单击Cygwin安装页面(http://www.cygwin.com/install.html)上的setup-x86_64.exe链接安装Cygwin .运行后,在默认值中单击"下一步",直到进入"选择包"窗口.

您需要搜索并安装两个软件包:gcc和make.
第一个搜索词是gcc.搜索gcc,然后打开Devel文件夹.通过单击Skip一词标记以下包以进行安装(然后它将更改为内部版本号,可能高于此处描述的版本号):gcc-core,gcc-g ++和libgcc1.

第二个搜索词是make.在这里,我们只需要Devel包make.

选择这些后,单击"下一步"进行安装.
步骤3下载并构建Google Test项目
从https://code.google.com/p/googletest/downloads/list下载最新版GoogleTest ,并将zip文件内容解压缩到公共目录中.所有用户都能够访问此目录非常重要.
要构建Google Test项目:
cd c:/<<yourpath>>/gtest-1.7.0/make/makear -rv libgtest.a gtest-all.o步骤4将Cygwin bin目录添加到计算机PATH变量中
按照此页面上的说明为您的Windows版本:http://www.java.com/en/download/help/path.xml,将Cygwins bin目录添加到计算机PATH环境变量中.(通常通过添加; C:\ cygwin64\bin到当前值的末尾).
步骤5创建一个使用GoogleTest的新项目
启动Eclipse并选择File-> New-> C++ Project.输入以下值,然后单击"完成".

在"项目浏览"中,右键单击项目名称,然后选择"属性".在C/C++ Build下,将Builder类型更改为Internal Builder.
在C/C++ Build下,选择Settings,然后单击Cygwin C++ Compiler下的Includes文件夹.单击顶部框中的"添加"按钮,然后浏览到GoogleTest包含文件夹.

最后,在Cygwin C++ Linker文件夹下,选择Miscellaneous,然后单击Other objects下的Add图标.找到您在步骤3中构建的libgtest.a文件(它应该位于解压缩的gtest文件夹的make目录中).

而已!现在你准备尝试了.
第6步编写一些使用GoogleTest的代码
将以下代码复制并粘贴到相应的文件中:
Counter.h
class Counter {
private:
int mCounter;
public:
Counter() : mCounter(0) {}
int Increment();
};
Run Code Online (Sandbox Code Playgroud)
Counter.cpp
#include <stdio.h>
#include "Counter.h"
int Counter::Increment() {
return mCounter++;
}
Run Code Online (Sandbox Code Playgroud)
Counter_Tests.cpp
#include "gtest/gtest.h"
#include "Counter.h"
TEST(Counter, Increment) {
Counter c;
EXPECT_EQ(0, c.Increment());
EXPECT_EQ(1, c.Increment());
EXPECT_EQ(2, c.Increment());
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)
在Project菜单中,选择Build All.现在,要连接GoogleTest单元测试框架,请从"运行"菜单中选择"运行配置".从该对话框中,选择C/C++ Unit并单击New按钮.

它应该在C/C++ Application下自动填写这个项目名称,如果没有点击Search Project来选择这个项目.接下来,单击C/C++ Testing选项卡.在Tests Runner下拉菜单中,选择Google Tests Runner,然后点击Run以观看魔术!

以下是结果的快照.编写更多代码/测试后,可以单击红色突出显示的按钮,快速重新编译并重新运行所有测试.

Rig*_*iga 10
您不应将其添加到源文件夹,而是创建单独的文件夹.这是为了避免生产代码与测试项目的依赖关系.像这样做
../ #your project folder
Makefile
src/
module1 #some module
module2 #another module
build #tmp for build
dist #binaries
contrib/
gtest
...
test/ #your test project folder
Makefile
src/
module1 #correspondent to main project's one
module2 #correspondent to main project's one
build
dist
...
Run Code Online (Sandbox Code Playgroud)
我通常使用google test作为两个文件,这非常方便.使用scripts/fuse_gtest_files.pygtest发行版来提取它们.只有两个文件,您可以在测试项目编译中包含它们的编译,并具有简单的项目结构.
在您的测试项目中指定包含目录../contrib:../src:src.因此,您可以包含这样的标题
测试/ SRC /模块1/class1Test.h:
#include "gtest/gtest.h"
#include "module1/class1.h"
// test class1 here
// ...
Run Code Online (Sandbox Code Playgroud)
测试/ SRC/mainTest.cpp:
#include "gtest/gtest.h"
#include "module1/class1Test.h"
#include "module2/class2Test.h"
// include other tests you have
// ...
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)
这是我对Eclipse 4.3和CDT 8.2的解决方案.我觉得这比上面描述的要容易一些.
下载gtest并按照readme.txt(使用cmake和make in linux)中的描述进行安装
转到"YourProject-> Properties-> C/C++ Build-> Settings-> GCC C++ Compiler-> Includes-> Include paths"并在gtest中添加include文件夹
转到"YourProject-> Properties-> C/C++ Build-> Settings-> GCC C++ Linker-> Libraries",将gtest文件夹添加为搜索路径并添加库"gtest"和"pthread"
(4.如果您在同一项目中进行测试,则排除来自发布版本的测试)
转到"运行 - >运行配置..."并创建新的C/C++单元运行配置
在主选项卡中将项目设置为项目,将C/C++应用程序设置为应用程序.在C/C++测试选项卡中将测试运行器设置为Google Test Runner.
(7.错误通知可能会留在eclipse gui中,如果是这种情况重新索引项目可能有帮助)
| 归档时间: |
|
| 查看次数: |
40016 次 |
| 最近记录: |