2015-06-29 200 views
5

我有一個不使用Qt的C++項目。我使用Qt Creator作爲我的IDE,因爲它非常方便。Qt Creator中的單元測試(非Qt)C++代碼?

我正在閱讀關於Qt Creator的單元測試here,我認爲Qt Test看起來相當不錯。有沒有一種方法可以在我的非Qt C++項目中使用Qt Test?

請注意,我在我的PC中安裝了Qt庫,我正在使用它編程。但我不希望我發佈的編譯程序依賴於Qt庫。

此外,我在使用Visual Studio時喜歡的一個功能是,每次構建項目時都會自動運行測試。我可以用Qt Creator做同樣的事嗎?順便說一句,如果你可以建議另一個單元測試框架,我可以在Qt Creator中輕鬆使用,那也沒有問題。

+1

個人而言,我發現幾乎沒有在Qt Creator的測試和官方文檔使用Qt缺少更復雜的測試提供任何支持。 – Simon

+0

您可能需要建立一個單獨測試的Qt項目,這兩個項目共享常見被測試文件 – UmNyobe

+0

@Simon您有任何其他建議可以與Qt Creator一起使用嗎? – becko

回答

1

從來沒有真正嘗試在QtCreator中對非qt代碼進行單元測試,但代碼的Qt本質並不重要。這就是我會去:

  1. 把你的正常,無QT項目
  2. 添加subdir類型的父項目表現得像一個Visual Studio將解決方案。
  3. 添加父下的另一個項目,這是一個Qt測試項目,即

    QT += testlib 
    CONFIG += qtestlib 
    
  4. 找到一個方式來分享在兩者之間來源。您可以使用它們的相對路徑添加源文件,創建靜態庫,也可以對非qt和qttestlib項目使用pri文件(project header file)。

通過此配置,通過構建頂級項目,您將構建常規項目並運行測試。

subdir項目模板,你從CTRL得到 + ň不是非常有幫助。但頂級的項目文件可以做得很簡單

include (commonsrc.pri) 

TEMPLATE = subdirs 
CONFIG += ordered 

SUBDIRS += appdir 
SUBDIRS += testingdir 

這就是我的項目的最高級別看起來像什麼。

避免頭痛符合文件夾層次結構與子目錄層次結構。例如

solutiondir 
    commondir 
    appdir 
    testingdir 
    commonsrc.pri <--- allow you to write commondir\mycpp.cpp in any project