VS2015搭建GoogleTest框架--配置第一個項目


最近公司要我學習Google的測試框架google test:https://github.com/google/googletest. GoogleTest是C++的測試框架,我一個學習Java的,開頭好難啊。查了好多,才編譯成功。總結下,幫助后來人,基本上比我查到的詳細。

1.下載googletest: https://github.com/google/googletest 

2.以VS為例,在VS中導入msvc/gtest.sln,然后重新編譯,debug、release兩個模式都要編譯。編譯后,在msvc/gtest/下有debug、release兩個文件夾。

  msvc\gtest\Debug - Debug方案下的二進制文件:gtestd.lib、gtest_maind.lib(注意主文件名的d后綴)
  msvc\gtest\Release - Release方案下的二進制文件:gtest.lib、gtest_main.lib

  至此,准備階段完成。(也可以不用VS構建,用Xcode、GNU make、 Borland C++ Builder)。

3.創建具體的測試項目

    3.1  在VS2015中,創建WIN32控制台應用;

    3.2  右擊工程名,點擊“屬性”,配置工程屬性; 展開“配置屬性——C/C++——常規”,在“附加包含目錄”中添加“.\gtest-1.7.0\include”(省略部分為gtest-1.8.0的路徑);

    3.3  展開“C/C++——代碼生成”,在“運行庫”中修改為“多線程調試(/MTd)”;(其實你也可以選擇動態鏈接(/MD),前提是你之前編譯的gtest也使用了同樣是/MD選項

    3.4 展開“鏈接器——輸入”,在“附加依賴項”中添加第二步生成的gtestd.lib,附加上正確的路徑;在這里有個小技巧,.lib是靜態庫文件,你可以把它們放到一個專門的lib文件夾下,lib文件夾放哪自己看着辦吧,我是放在了googletest文件夾下。

上述是以Debug模式為例,Release模式就是把3.3、3.4換成對應於Release的就可以。

4. 項目代碼

  stdafx.h:

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>

  FirstGtest.cpp:

#include "stdafx.h"
#include <gtest\gtest.h>

int _tmain(int argc, _TCHAR* argv[])
{
	testing::InitGoogleTest(&argc, argv);
	return RUN_ALL_TESTS();
}

  add.cpp:

#include "stdafx.h"

int Add(int a, int b)
{
	return a + b;
}

  testCase.cpp:

#include "stdafx.h"
#include <gtest\gtest.h>
extern int Add(int a, int b);

TEST(testCase, test0)
{
	EXPECT_EQ(14, Add(4, 10));//EXPECT_EQ是比較兩個值是否相等
}

TEST(testCase, test1)
{
	/*本用例不過*/
	EXPECT_EQ(6, Add(5, 7));
}

TEST(testCase, test2)
{
	EXPECT_EQ(28, Add(10, 18));
}

  從上邊可以看出:3個測試中一個失敗,兩個成功。

5. 編譯成功如下:

6.如果出現以下錯誤:就是3.3步修改錯了。

7.Release模式下:

    3.3  展開“C/C++——代碼生成”,在“運行庫”中修改為“多線程(/MT)”;

    3.4 展開“鏈接器——輸入”,在“附加依賴項”中添加第二步生成的gtest.lib,附加上正確的           路徑;

OK。


免責聲明!

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



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