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

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

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

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控制檯應用;ui

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

    3.3  展開「C/C++——代碼生成」,在「運行庫」中修改成「多線程調試(/MTd)」;(其實你也能夠選擇動態連接(/MD),前提是你以前編譯的gtest也使用了一樣是/MD選項spa

    3.4 展開「連接器——輸入」,在「附加依賴項」中添加第二步生成的gtestd.lib,附加上正確的路徑;在這裏有個小技巧,.lib是靜態庫文件,你能夠把它們放到一個專門的lib文件夾下,lib文件夾放哪本身看着辦吧,我是放在了googletest文件夾下。線程

上述是以Debug模式爲例,Release模式就是把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。

相關文章
相關標籤/搜索