我是 g 测试的新手,这是我正在尝试做的事情(在控制台的 Linux 服务器上): 1)在 C++ 中创建一个小项目(带有一个包含函数原型的头文件,一个带有函数的 cpp 文件在其中和另一个 cpp 文件,其中 main 调用头文件中已经定义的函数) 2)配置 g test 以编写单元测试并测试在步骤 1 中创建的函数 3)创建另一个带有几个单元测试的小项目(不同测试步骤1中项目下创建的功能的场景)
谁能告诉如何配置 g 测试和使用示例创建的项目?
提前致谢
我是 g 测试的新手,这是我正在尝试做的事情(在控制台的 Linux 服务器上): 1)在 C++ 中创建一个小项目(带有一个包含函数原型的头文件,一个带有函数的 cpp 文件在其中和另一个 cpp 文件,其中 main 调用头文件中已经定义的函数) 2)配置 g test 以编写单元测试并测试在步骤 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
在此刻:
使用谷歌测试:
在文件中包含标题:
#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 包含函数原型的声明
如果你有像 unitTest1.cpp 和 unitTest2.cpp 这样的单元测试用例脚本要通过 gtest 进行测试,那么可以通过以下方式实现:
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)
干净:rm testAll *.o testAll.xml
今天我阅读了Google 测试常见问题解答。不建议安装 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 .
, 生成 Makefilemake
, 构建 gtest 例程./fooTest
, 运行 gtest 例程make test
, 运行 cmake 测试,这是运行 gtest 的另一种方式