[英]How to configure and setup google test framework in linux
我是g测试的新手,这是我想要做的事情(在Linux服务器上从控制台):1)用C ++创建一个小项目(带有包含函数原型的头文件,带有函数的cpp文件)在它和另一个主调用已在头文件中定义的函数的cpp文件中)2)配置g测试以编写单元测试并测试在步骤1中创建的函数3)创建另一个带有几个单元测试的小项目(不同用于测试在步骤1)中在项目下创建的函数的方案
任何人都可以告诉我们如何配置g测试和用一个例子创建的项目?
提前致谢
首先,从Subversion存储库获取最新版本的GoogleTest(您需要安装Subversion ):
cd ~ svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only
然后,构建库(您需要安装cmake ):
mv googletest-read-only googletest mkdir googletest/lib cd googletest/lib cmake .. make
在此刻:
要使用googletest:
在文件中包含标题:
#include "gtest/gtest.h"
导出库路径:
export GOOGLETESTDIR=~/googletest
编译
g++ ... -I$GOOGLETESTDIR/include -L$GOOGLETESTDIR/lib -lgtest -lpthread
经过一个小小的研究,我发现了:
如果您的项目库包含以下文件:
1)callMain.cpp,它调用该函数做一些操作
2)reverse.cpp,其中包含反转数字的逻辑和
3)header.h包含函数原型的声明
如果您通过gtest测试单元测试用例场景脚本(如unitTest1.cpp和unitTest2.cpp),则可以通过以下方式实现:
g++ -I<gtest include directory location> -L<gtest directory location> <gtest_main.cc location> reverse.cpp unitTest1.cpp unitTest2.cpp -lgtest -lpthread -o test_try
这会编译并生成一个像test_try这样的可执行文件,在执行时会产生所需的结果。 如果我在任何地方都错了,请纠正我。 快乐编码:)
请找到教程
@ http://www.yolinux.com/TUTORIALS/Cpp-GoogleTest.html
makefile上的一次更正(test / src / Makefile)。 库路径的顺序不正确!!
CXX = g ++
CXXFLAGS = -g -L / opt / gtest / lib -lgtest -lgtest_main -lpthread
INCS = -I./ -I ../../ src -I / opt / gtest / include
OBJS = ../../src/Addition.o Addition_Test.o ../../src/Multiply.o Multiply_Test.o
testAll:$(OBJS)
$(CXX)$(INCS)-o testAll Main_TestAll.cpp $(OBJS) $(CXXFLAGS)
.cpp.o:$(CXX)$(CXXFLAGS)-c $ <-o $ @ $(INCS)
clean:rm testAll * .o testAll.xml
今天我读了Google Test FAQ 。 不建议安装Google Test的预编译副本(例如,安装到/usr/local
)。 您可以在常见问题解答中找到答案。
下面的代码适合我。
cmake_minimum_required(VERSION 2.8)
################################
# Add gtest environment
################################
enable_testing()
find_package(GTest REQUIRED)
# add gtest include directory: way 1
include_directories(${GTest_INCLUDE_DIRS})
# add gtest include directory: way 2
#include_directories(${GTest_SOURCE_DIRS}/include ${GTest_SOURCE_DIR})
################################
# Build tests
################################
aux_source_directory(. DIR_SRCS)
add_executable(fooTest ${DIR_SRCS})
# parameter `gtest` should at the front of `pthread`
target_link_libraries(fooTest gtest pthread)
# Take all gtest cases as one Cmake test case
add_test(AllFooTest fooTest)
然后,您可以使用命令:
cmake .
,生成Makefile make
,构建gtest例程 ./fooTest
,运行gtest例程 make test
,运行cmake test,这是你运行gtest的另一种方式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.