Qt使用gtest


近日需要使用Qt進行一個工具的編寫, 恰逢最近在學習使用gtest作為測試的首選, 本着熟能生巧, 能有機會多練習就多練習, 無機會創造機會也要上(/(ㄒoㄒ)/~~)的積極(折騰作死)態度, 開展了Qt使用gtest的折騰.

首先, 說明一下環境: win7+qt5.8.0(MinGW), gtest最新版本, 直接從GitHub拉取(https://github.com/google/googletest)

其次, 要使用gtest, 先要使用對應的編譯器編譯,這里由於使用的是MinGW版本的Qt, 所以gtest也要使用MinGW進行編譯, 不然編譯器無法正常連接gtest使用.下面是關於Qt編譯gtest的步驟:

1.在拉取下來的googletest目錄下建立一個gtest.pro(Qt project文件)[特別注明:當前gtest將gmock集成到gtest工程下了, 所以gtest的目錄下是有googletest目錄的], 如下圖:

image

2.編輯gtest.pro文件, 曾參考過網上一篇blog(這里)進行編輯, 但是編譯生成出來的是兩個.o文件和一個.exe文件, 並不是MinGW編譯出來的靜態庫.a文件. 后來的做法, 是先使用Qt新建一個靜態庫的工程, 然后拷貝這個新建的靜態庫工程的pro的內容到gtest.pro, 然后再按需更改, gtest.pro的更改后的內容如下圖:

image

圖中圈出來的內容為需要更改的部分

3.使用Qt打開gtest.pro工程, 構建之, Qt會在.pro的上一級目錄下生成對應的編譯目錄和輸出目錄(基於shadow build), 如下圖:

image

圖中可以看到gtest工程下已經集成了gmock工程

4.在輸出目錄下, 可以看到MinGW編譯出的gtest庫文件libgtest.a

編譯得到想要的gtest庫后, 開始使用在Qt環境下使用之.

1.使用Qt新建一個console的驗證工程gtestforqt

2.編輯gtestforqt.pro文件, 使其可以連接到我們編譯的gtest庫文件, 如下圖:

image

INCLUDEPATH 是增加對gtest頭文件的鏈接路徑

LIBS 是增加對gtest庫文件的鏈接路徑

注釋部分, 是使用絕對路徑, 不建議使用, 對各個機子的環境依賴太強.

建議使用下面的相對路徑(注意, 要包含pro文件在的當前文件夾在內..\gtestforqt\lib\Debug\,而不能直接使用.\lib\Debug\)

3.include gtest的文件件,並初始化gtest, 如下圖:

image

4.構建運行后, gtest成功執行:

image

5.增加一個TEST並運行, 如下圖

image

至此, Qt編譯gtest並使用gtest的工作已經折騰完成, 以此記錄, 以便后面自己查看和其他人查看(網上這方面的資料不多..或者是我沒查到 = .=!)


免責聲明!

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



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