gtest


轉載自:https://blog.csdn.net/u012515915/article/details/46942745

原文:C++ unit test start guide, how to set up Google Test (gtest) in Eclipse?

原文鏈接:http://www.codeproject.com/Articles/811934/Cplusplus-unit-test-start-guide-how-to-set-up-Goog

 

介紹

軟件測試是一個龐大而復雜的主題。單元測試是一種將一個類與其他類隔離開來的測試。單元測試的目的是將程序的每一部分與其他部分隔離開來,證實每一部分的正確性。

背景

Googletest是一個非常著名的C++單元測試框架。它可以在不同平台上工作(Linux, Mac OS X, Windows, Cygwin, Windows CE, 以及Symbian),它基於xUnit體系結構。支持自動測試發覺,提供了一套豐富的斷言,支持用戶自定義斷言,死亡測試,致命和非致命錯誤,值測試和參數化測試,多種運行測試的方式,並且可以生成XML格式的測試報告。

程序設置

第一步:下載googletest

從如下路徑下載googletest

https://code.google.com/p/googletest/downloads/list

當前的版本為1.7.0

譯者注:鑒於眾所周知的原因,我們訪問不了google,這點比較蛋疼。好在我們可以從其他渠道獲取源碼,比如github,地址如下:

https://github.com/smarr/googletest

第二步:解壓gtest-1.7.0

解壓gtest-1.7.0,然后打開gtest-1.7.0文件夾。其中包含了很多文件。“samples”給出了是個使用googletest的例子;“src”存放源文件。

第三步:在eclipse中設置googletest的工作環境

3.1步 創建unit test工程

打開eclipse,點擊File->New->C++ Project

在“Project name:”欄里輸入你的工程名,比如“unit_test

然后點擊next,在選擇配置中選擇“Debug”和“Release

接着點擊“next

最后點擊Finishunit_test將會出現在左側的“Project Explorer”表中。

3.2步 添加googletestlibrary, source以及test文件夾

1. 右鍵unit_test->New->Folder,創建源代碼文件夾“src(將被測試的代碼)

2. 右鍵unit_test->New->Folder,創建頭文件文件夾“include

3. 右鍵unit_test->New->Folder,創建“gtest_src”文件夾存放gtest

4. 右鍵unit_test->New->Folder,創建“test”文件夾,存放測試代碼

3.3步 添加googletest庫,源代碼以及測試代碼

1. 添加googletest庫到gtest_src文件夾

接下來我們要做的事是通過運行下面的命令向gtest_src文件夾添加google test庫,這一步主要是將gtest.hgtest_all.cc拷貝到gtest_src/gtest路徑下

在終端運行上面的命令后,eclipse是這樣的

2. 添加源代碼

右鍵include->New->Header File,創建頭文件“factorial.h”。


代碼如下:

  1. //factorial.h
  2.  
  3. #ifndef FACTORIAL_H_
  4.  
  5. #define FACTORIAL_H_
  6.  
  7. int factorial(int n);
  8.  
  9. #endif /* FACTORIAL_H_ */

接着右鍵src->New->Sourc File,輸入源代碼文件名,比如“factorial.cpp

  1. //factorial.cpp
  2. int factorial(int n) {
  3. int result = 1;
  4. for (int i = 1; i <= n; i++) {
  5. result *= i;
  6. }
  7. return result;
  8. }

3. 添加測試代碼

右鍵test_code->New->Source File,輸入測試代碼文件名

測試代碼:“test_factorial.cpp

  1. //test_factorial.cpp
  2.  
  3. # include "gtest/gtest.h"
  4. # include "factorial.h"
  5.  
  6. TEST(IntegerFunctionTest, negative) {
  7. EXPECT_EQ( 1, factorial(-5));
  8. EXPECT_EQ( 1, factorial(-1));
  9. EXPECT_GT(factorial( -10), 0);
  10. }
  11.  
  12. TEST(IntegerFunctionTest, DISABLED_zero) {
  13. EXPECT_EQ( 1, factorial(0));
  14. }
  15.  
  16. TEST(IntegerFunctionTest, postive) {
  17. EXPECT_EQ( 1, factorial(1));
  18. EXPECT_EQ( 2, factorial(2));
  19. EXPECT_EQ( 6, factorial(3));
  20. EXPECT_EQ( 40320, factorial(8));
  21. }

以及“gtest_main.cpp

  1. // gtest_main.cpp
  2. #include <stdio.h>
  3. #include "gtest/gtest.h"
  4.  
  5. GTEST_API_ int main(int argc, char **argv) {
  6. printf("Running main() from gtest_main.cc\n");
  7. testing::InitGoogleTest(&argc, argv);
  8. return RUN_ALL_TESTS();
  9. }

第四步: 設置運行環境

1.在工程unit_test上右鍵->properties->C++ linker->Library->(-I)->輸入“pthread”然后點擊“ok”。

2.在test文件夾上右鍵->Properities->C/C++ Build -> Setting-> Cross G++ Compiler-> includes->Include paths(-I)點擊添加按鈕->輸入“workspace..”以及文件夾 “include”和“gtest_src”的到該路徑

3.在文件夾gtest_src上右鍵->Properities->C/C++ Build->Setting->Cross G++ Compiler->includes->Include paths(-I)。點擊“添加”按鈕->輸入“workspace..”,添加文件夾“gtest_src”到該路徑。

這樣,運行環境就搭建好了,我們可以開始單元測試了。

第五步:運行Google Test

1.在eclipse中,點擊Project->BuildAll或者用ctrl+Bbuild工程

2.點擊Run->Run或者用ctrl+F11來執行文件。

另外,我們也可以在終端運行,進入Debug路徑,執行可執行文件unit_test

我們可以看到如下這樣的輸出。



https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 

玩轉Google開源C++單元測試框架Google Test系列(gtest)系列


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM