轉載自: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”
最后點擊Finish,unit_test將會出現在左側的“Project Explorer”表中。
3.2步 添加googletest的library, 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.h和gtest_all.cc拷貝到gtest_src/gtest路徑下
在終端運行上面的命令后,eclipse是這樣的
2. 添加源代碼
右鍵include->New->Header File,創建頭文件“factorial.h”。
代碼如下:
-
//factorial.h
-
-
-
-
-
-
int factorial(int n);
-
-
接着右鍵src->New->Sourc File,輸入源代碼文件名,比如“factorial.cpp”
-
//factorial.cpp
-
int factorial(int n) {
-
int result = 1;
-
for (int i = 1; i <= n; i++) {
-
result *= i;
-
}
-
return result;
-
}
3. 添加測試代碼
右鍵test_code->New->Source File,輸入測試代碼文件名
測試代碼:“test_factorial.cpp”
-
//test_factorial.cpp
-
-
-
-
-
TEST(IntegerFunctionTest, negative) {
-
EXPECT_EQ( 1, factorial(-5));
-
EXPECT_EQ( 1, factorial(-1));
-
EXPECT_GT(factorial( -10), 0);
-
}
-
-
TEST(IntegerFunctionTest, DISABLED_zero) {
-
EXPECT_EQ( 1, factorial(0));
-
}
-
-
TEST(IntegerFunctionTest, postive) {
-
EXPECT_EQ( 1, factorial(1));
-
EXPECT_EQ( 2, factorial(2));
-
EXPECT_EQ( 6, factorial(3));
-
EXPECT_EQ( 40320, factorial(8));
-
}
以及“gtest_main.cpp”
-
// gtest_main.cpp
-
-
-
-
GTEST_API_ int main(int argc, char **argv) {
-
printf("Running main() from gtest_main.cc\n");
-
testing::InitGoogleTest(&argc, argv);
-
return RUN_ALL_TESTS();
-
}
第四步: 設置運行環境
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+B來build工程
2.點擊Run->Run或者用ctrl+F11來執行文件。
另外,我們也可以在終端運行,進入Debug路徑,執行可執行文件unit_test
我們可以看到如下這樣的輸出。
https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html