簡體   English   中英

如何在linux中配置和設置谷歌測試框架

[英]How to configure and setup google test framework in linux

我是g測試的新手,這是我想要做的事情(在Linux服務器上從控制台):1)用C ++創建一個小項目(帶有包含函數原型的頭文件,帶有函數的cpp文件)在它和另一個主調用已在頭文件中定義的函數的cpp文件中)2)配置g測試以編寫單元測試並測試在步驟1中創建的函數3)創建另一個帶有幾個單元測試的小項目(不同用於測試在步驟1)中在項目下創建的函數的方案

任何人都可以告訴我們如何配置g測試和用一個例子創建的項目?

提前致謝

  1. 首先,從Subversion存儲庫獲取最新版本的GoogleTest(您需要安裝Subversion ):

     cd ~ svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only 
  2. 然后,構建庫(您需要安裝cmake ):

     mv googletest-read-only googletest mkdir googletest/lib cd googletest/lib cmake .. make 
  3. 在此刻:

    • 已編譯的庫位於〜/ googletest / lib目錄中
    • 包含文件位於〜/ googletest / include目錄中

要使用googletest:

  1. 在文件中包含標題:

     #include "gtest/gtest.h" 
  2. 導出庫路徑:

     export GOOGLETESTDIR=~/googletest 
  3. 編譯

     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 )。 您可以在常見問題解答中找到答案。

所以,推薦這個答案這篇博客文章

老答案

遵循FindGTest的CMake文檔

下面的代碼適合我。

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)

然后,您可以使用命令:

  1. cmake . ,生成Makefile
  2. make ,構建gtest例程
  3. ./fooTest ,運行gtest例程
  4. make test ,運行cmake test,這是你運行gtest的另一種方式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM