Codeblocks下搭建gtest框架

Codeblocks下搭建gtest框架

Gtest需要先編譯才能使用。

一、編譯gtest

(1) 使用cmake-gui生成codeblocks工程

下載下來的gtest如下:

Gtest中有VS工程,如打開gtest-1.6.0\msvc目錄下有gtest.sln,這就是VS工程,可以用VS直接編譯。但是並沒有codeblocks工程,所以我們要先生成codeblock工程。

我們使用的是cmake-gui,安裝文件爲:

 

安裝完成後,打開cmake-gui,

在圖上這兩個框中填入路徑,”Where is the source code”中填入的是gtest的路徑,”Where to build the binaries”中填入的是你要生成的codeblocks工程的路徑,如我在gtest路徑下新建目錄mybuild-codeblocks-mingw。

然後點擊界面下的configure,如下圖,選擇生成codeblocks的makefile,

 

Finish後,如圖:

勾選gtest_disable_pthreads,再點configure,結束後再點Generate,就會在你的路徑生成codeblocks工程,

用codeblocks打開,並build。

編譯gtest的目的是生成庫文件,libgtest.a,在後面的工程中使用該庫文件。

 

二、建立gtest工程

2.1 建立工程

使用codeblocks新建控制檯程序,

此處選擇C++,

 

文件結構爲:     _ source-

            - code|

            |     - include

            |

Reconstitution |

            |      _codetest

- ft_prj |

      - testcases

      |

      - stub

 

Ft_prj->codetest即爲新建的控制檯程序工程路徑,將前面編譯生成的libgtest.a庫文件放入此,code是我們正式代碼的路徑,ft_prj裏面testcases是我們測試用例代碼的路徑,stub是打樁代碼的路徑。

如果要增加文件,選中工程,右鍵Add files即可。

 

2.2 工程配置

main.cpp中代碼爲:

#include <iostream>

#include "gtest/gtest.h"

 

using namespace std;

 

 int main(int argc, char **argv)

{

       testing::InitGoogleTest(&argc, argv);

       RUN_ALL_TESTS();

       system("PAUSE");

 

       return 0;

}

test.cpp中代碼爲:

#include "gtest\gtest.h"

#include "demo.h"

 

struct TestFix:testing::Test{

    void SetUp()

        {

        }

    void TearDown()

       {

       }

};

 

TEST_F(TestFix,test1)

{

    int ret=0;

    ret = first(10);

       EXPECT_EQ(11,ret);

    ASSERT_EQ(11,ret);

};

其中first()函數爲code路徑下的一個測試函數,頭文件”demo.h”裏有這個函數的申明。

 

右鍵工程,選擇build options:

 

清除Compiler settings > Compile Flags下與-std=有關的複選框
點擊選項卡Compiler settings > Other options,在對話框中填寫-std=gnu++11
在Linker settings > Other linker options下填寫-lgtest

 

在linker settings->link libraries裏add之前編譯的庫文件。

在search directories->compiler裏增加gtest-1.6.0\include路徑,另外還要增加搜索自己代碼頭文件的路徑,如code->include,stub->include。

在search directories->linker增加庫文件libgtest.a所在的路徑。


最後選擇工程,右鍵build,即可編譯工程。運行:

 

以後在此基礎上,可以增加測試用例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章