亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

Google開源C++單元測試框架gTest 1:gTest安裝編譯

2019-11-07 23:19:45
字體:
來源:轉載
供稿:網友

一、前言

本篇將介紹一些gtest的基本使用,包括下載,安裝,編譯,建立我們第一個測試Demo工程,以及編寫一個最簡單的測試案例。 

二、下載

如果不記得網址, 直接在google里搜gtest,第一個就是。目前gtest的最新版本為1.3.0,從下列地址可以下載到該最新版本:

http://googletest.googlecode.com/files/gtest-1.3.0.zip 

http://googletest.googlecode.com/files/gtest-1.3.0.tar.gz 

http://googletest.googlecode.com/files/gtest-1.3.0.tar.bz2 

三、編譯

下載解壓后, 里面有個msvc目錄:

 

使用VS的同學可以直接打開msvc里面的工程文件, 如果你在使用的是VS2005或是VS2008,打開后會提示你升級,升完級后,我們直接編譯里面的“gtest”工程,可以直接編過的。

這里要提醒一下的是,如果你升級為VS2008的工程,那么你的測試Demo最好也是VS2008工程,不然你會發現很郁悶,你的Demo怎么也編不過,我也曾折騰了好久,當時我升級為了VS2008工程,結果我使用VS2005工程建Demo,死活編不過。(這里有人誤解了,并不是說只能在VS2008中編譯,在VS2005中同樣可以。如果要編譯VS2005版本,最好保證gtest和你的測試工程都使用VS2005工程。)

編譯之后,在msvc里面的Debug或是Release目錄里看到編譯出來的gtestd.lib或是gtest.lib文件。

四、第一個Demo

下面我們開始建立我們的第一個Demo了,假如之前使用的VS2008編譯的gtest,那么,我們在VS2008中,新建一個Win32 Console application。接著就是設置工程屬性,總結如下:

1.設置gtest頭文件路徑

2.設置gtest.lib路徑

3.Runtime Library設置

 

如果是Release版本,Runtime Library設為/MT。當然,其實你也可以選擇動態鏈接(/MD),前提是你之前編譯的gtest也使用了同樣是/MD選項。

工程設置后了后,我們來編寫一個最簡單測試案例試試,我們先來寫一個被測試函數:

復制代碼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);}復制代碼

沒錯,上面的函數是用來求最大公約數的。下面我們就來編寫一個簡單的測試案例。

復制代碼#include <gtest/gtest.h>TEST(FooTest, HandleNoneZeroInput){    EXPECT_EQ(2, Foo(4, 10));    EXPECT_EQ(6, Foo(30, 18));}復制代碼

上面可以看到,編寫一個測試案例是多么的簡單。 我們使用了TEST這個宏,它有兩個參數,官方的對這兩個參數的解釋為:[TestCaseName,TestName],而我對這兩個參數的定義是:[TestSuiteName,TestCaseName],在下一篇我們再來看為什么這樣定義。

對檢查點的檢查,我們上面使用到了EXPECT_EQ這個宏,這個宏用來比較兩個數字是否相等。Google還包裝了一系列EXPECT_* 和ASSERT_*的宏,而EXPECT系列和ASSERT系列的區別是:

    1. EXPECT_*  失敗時,案例繼續往下執行。

    2. ASSERT_* 失敗時,直接在當前函數中返回,當前函數中ASSERT_*后面的語句將不會執行。 

在下一篇,我們再來具體討論這些斷言宏。為了讓我們的案例運行起來,我們還需要在main函數中添加如下代碼:

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

“testing::InitGoogleTest(&argc, argv);” :gtest的測試案例允許接收一系列的命令行參數,因此,我們將命令行參數傳遞給gtest,進行一些初始化操作。gtest的命令行參數非常豐富,在后面我們也會詳細了解到。

“RUN_ALL_TESTS()” :運行所有測試案例

OK,一切就緒了,我們直接運行案例試試(一片綠色,非常爽):

 

五、總結

本篇內容確實是非常的初級,目的是讓從來沒有接觸過gtest的同學了解gtest最基本的使用。gtest還有很多更高級的使用方法,我們將會在后面討論??偨Y本篇的內容的話:

    1. 使用VS編譯gtest.lib文件

    2. 設置測試工程的屬性(頭文件,lib文件,/MT參數(和編譯gtest時使用一樣的參數就行了))

    3. 使用TEST宏開始一個測試案例,使用EXPECT_*,ASSER_*系列設置檢查點。

    4. 在Main函數中初始化環境,再使用RUN_ALL_TEST()宏運行測試案例。

優點:

    1. 我們的測試案例本身就是一個exe工程,編譯之后可以直接運行,非常的方便。

    2. 編寫測試案例變的非常簡單(使用一些簡單的宏如TEST),讓我們將更多精力花在案例的設計和編寫上。

    3. 提供了強大豐富的斷言的宏,用于對各種不同檢查點的檢查。

    4. 提高了豐富的命令行參數對案例運行進行一系列的設置。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕在线亚洲| 国产xxx69麻豆国语对白| 中文字幕在线看视频国产欧美| 欧美日韩视频在线| 国产91色在线播放| 中文字幕精品一区久久久久| 亚洲国产黄色片| 久久精品亚洲热| 992tv成人免费影院| 国产精品福利在线| 久久精品2019中文字幕| 欧美华人在线视频| 97激碰免费视频| 亚洲人精选亚洲人成在线| 在线观看欧美日韩| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品成人一区二区| 中文字幕久精品免费视频| 欧美性视频在线| 日韩av在线电影网| 欧美在线一级va免费观看| 美女撒尿一区二区三区| 国产日本欧美一区二区三区| 久久久久久一区二区三区| 性色av一区二区三区红粉影视| 九九热这里只有精品免费看| 亚洲有声小说3d| 久久精品2019中文字幕| 97久久精品视频| 91精品国产综合久久男男| 日韩成人在线视频| 成人性教育视频在线观看| 91精品国产色综合久久不卡98| 国产欧美日韩精品在线观看| 亚洲精品国产精品乱码不99按摩| 欧美高清性猛交| 色综合久综合久久综合久鬼88| 国产欧美一区二区三区久久| 欧美在线日韩在线| www.欧美免费| 日韩精品欧美国产精品忘忧草| 在线观看国产成人av片| 国产精品啪视频| 美女视频黄免费的亚洲男人天堂| 欧美色欧美亚洲高清在线视频| 国产ts一区二区| 国产精品亚洲精品| 色婷婷综合成人| 久久久久久999| 亚洲激情视频在线观看| 精品国产一区二区三区久久久狼| 日本中文字幕久久看| 国产盗摄xxxx视频xxx69| 亚洲激情在线观看| 国产亚洲欧美日韩美女| 久久久伊人欧美| 久久精品欧美视频| 日韩亚洲欧美中文在线| 亚洲激情第一页| 亚洲成色777777女色窝| 国产精品视频久久| 欧美大片在线看免费观看| 中文字幕日韩在线观看| 欧美一区二区三区艳史| 亚洲欧美日韩中文在线| 亚洲在线第一页| 欧美高清一级大片| 国产一区二区三区中文| 亚洲国产精品va在线| 国产精品极品美女粉嫩高清在线| 欧美激情videos| 久久福利网址导航| 日韩高清av一区二区三区| 国产亚洲人成网站在线观看| 97人人模人人爽人人喊中文字| 亚洲白虎美女被爆操| 色青青草原桃花久久综合| 国产婷婷成人久久av免费高清| 欧美第一黄网免费网站| 亚洲国产成人久久综合| 亚洲一区久久久| 日韩精品亚洲视频| 国产不卡av在线免费观看| 国产欧美一区二区白浆黑人| 久久久久久久久久亚洲| 激情久久av一区av二区av三区| 国产精品老女人精品视频| 国产精品综合不卡av| 亚洲欧美在线免费观看| 欧美色另类天堂2015| 国产精品一区二区久久| 国产精品吹潮在线观看| 欧美日韩高清在线观看| 国产精选久久久久久| 亚洲电影天堂av| 欧美一级片久久久久久久| 97在线免费观看视频| 国产一区深夜福利| 日韩中文字幕精品视频| 成人www视频在线观看| 精品国内自产拍在线观看| 欧美激情中文字幕在线| 亚洲乱亚洲乱妇无码| 亚洲精品久久久久久下一站| 91精品国产综合久久久久久久久| 九九久久久久99精品| 国产精品99久久久久久www| 色综合久久中文字幕综合网小说| 91在线观看免费网站| 成人中文字幕在线观看| 91在线播放国产| 97在线精品视频| 欧美性69xxxx肥| 成人亚洲激情网| 亚洲精品综合久久中文字幕| 亚洲第一网站男人都懂| 欧美性xxxx18| 国产精品久久电影观看| 九九九久久国产免费| 精品国内亚洲在观看18黄| 国产999精品久久久影片官网| 国产精品激情自拍| 欧美日韩精品国产| 久久久久久国产三级电影| 91国内产香蕉| 国产一区二区美女视频| 国产精品三级网站| 亚洲女同精品视频| 91精品国产自产在线老师啪| 久久精品久久久久| 亚洲欧美综合精品久久成人| 国产婷婷97碰碰久久人人蜜臀| 亚洲97在线观看| 97精品一区二区三区| 日韩精品电影网| 97国产suv精品一区二区62| 国产精品稀缺呦系列在线| 欧美日韩国产综合视频在线观看中文| 热久久这里只有| 亚洲欧洲中文天堂| 久久亚洲电影天堂| 亚洲社区在线观看| 日韩视频在线免费| 伦伦影院午夜日韩欧美限制| 91tv亚洲精品香蕉国产一区7ujn| 国产亚洲日本欧美韩国| 国产亚洲一级高清| 国产成一区二区| 日本免费久久高清视频| 亚洲精品久久在线| 57pao国产精品一区| 精品视频久久久久久| 精品伊人久久97| 啊v视频在线一区二区三区| 久久久久成人网| 亚洲国产精品国自产拍av秋霞| 国产精品丝袜久久久久久不卡| 久久久中文字幕| 青青久久av北条麻妃黑人| 久久精品99久久久久久久久| 欧美综合国产精品久久丁香| 国产精品www色诱视频| 午夜精品久久17c| 亚洲福利在线看|