vs2013環境下配置gtest

好記性不如爛筆頭o(^▽^)o

vs2013環境下配置gtest

前言

一開始按照這裏玩轉Google開源C++單元測試框架Google Test系列(gtest)之一 - 初識gtest來配置,發現一些坑,並寫了一個直接可運行的demo,這裏記錄之。

前期準備

1、從github上down代碼:https://github.com/google/googletest
2、進入googletest文件夾
這裏寫圖片描述

3、進入mvsc文件夾,用vs2013打開 gtest.sln,提示升級什麼的點是就好了
這裏寫圖片描述

4、分別在DEBUG和RELEASE版本下編譯,編譯成功後在 msvc/gtest 下生成兩個文件夾
這裏寫圖片描述

5、將兩個文件夾下生成的lib拷貝出來,在include平行的目錄下新建一個lib文件夾,將4個lib放在這裏
這裏寫圖片描述

開始第一個demo

1、新建一個vs工程,Win32 Console Application
2、設置runtime library
這裏寫圖片描述

爲啥這麼設置?和你打開的gtest.sln工程保持一致,不信自己去看。

3、配置頭文件的搜索路徑
這裏寫圖片描述

4、配置lib庫的搜索路徑,這個路徑就是我們之前創建的lib文件夾
這裏寫圖片描述

5、配置鏈接依賴項,將 gtest.lib, gtest_main.lib, gtestd.lib, gtest_maind.lib加入
這裏寫圖片描述

6、配置完畢,撰寫代碼如下:
這裏 Foo 函數的代碼借用了開頭那篇文章的鏈接

#include <tchar.h>
#include <gtest/gtest.h>

int Foo(int a, int b)
{
    if (a == 0 || b == 0)
    {
        throw "don't do that";
    }
    int c = a % b;
    if (c == 0)
        return b;
    return Foo(b, c);
}

TEST(FooTest, HandleNoneZeroInput)
{
    EXPECT_EQ(2, Foo(4, 10));
    EXPECT_EQ(6, Foo(30, 18));
}

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

7、運行
這裏寫圖片描述

常見問題

1、gtest error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
原因:你按照那篇文章,在設置Additional Dependencies時,只設置了 gtestd.lib,缺少getst_maind.lib。

2、error C2061: syntax error : identifier ‘_TCHAR’
解決方法:添加頭文件 #include <tchar.h>

發佈了140 篇原創文章 · 獲贊 97 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章