2014-09-27 44 views
1

我正在構建一個由多個組件(包括插件)組成的Qt應用程序。每個子項目包含幾個類。 我想在我的開發過程中使用「正常」的TDD工作流程 - 即;Qt子項目和TDD

  1. 我寫一個類的新功能/方法的模塊中作爲測試
  2. 編譯測試(其應該失敗)該模塊
  3. 修改源來校正誤差(通過添加FUNC /法等)
  4. 編寫測試用例的新功能/法
  5. 修改SRC代碼來修復失敗測試

每一個子項目將包含一個src /和測試/文件夾,將持有的源文件和單元測試分別

這是該項目的目錄結構的樣子:

myapp 
| 
|-myapp.pro 
| 
|--module1/ 
|  |-src/ 
|  |-test/ 
| 
|--module2/ 
|  |-src/ 
|  |-test/ 
| 
. 
. 
|--moduleN/ 
|  |-src/ 
|  |-test/ 

我怎樣才能設置QCreator這樣我就可以建立一個子項目或來自QCreator GUI的單元測試?

回答

0

您應該在.pro文件中使用subdirs模板。

我相信,你可以從以下link開始(在鏈接頁面的底部)。

0

,您可以撥打subdirs項目和子項目添加到其.pro文件:

TEMPLATE = subdirs 

CONFIG += ordered 

SUBDIRS += \ 
    module1 \ 
    module2 \ 
    ... 
    moduleN \ 
    myapp 

你應該讓別人依賴於子項目,在列表的首位。另請注意,子項目的.pro文件的名稱應該與文件夾名稱相同。通過這種方式,子項目被檢測並列在「項目」窗格中。

的子項目module1module2 ... moduleN可能是具有TEMPLATE = lib在他們的pro文件和myapp應在.pro文件包含TEMPLATE = app應用程序庫。

可以通過將每個子項目中的庫鏈接到子項目來使用這些庫。這可以通過右鍵單擊子項目並選擇Add Library,然後Internal Library來完成。從子項目列表中選擇一個庫時,鏈接配置會自動添加到.pro。它會是這樣的:

win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../module1/release/ -lmodule1 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../module1/debug/ -lmodule1 
else:unix: LIBS += -L$$OUT_PWD/../Base/ -lmodule1 

INCLUDEPATH += $$PWD/../module1 
DEPENDPATH += $$PWD/../module1 
+0

謝謝你建議的方法會導致項目(比如一個模塊)和它的測試並排存在(在相同的目錄級別)。我想要做的就是擁有源碼,並且它是在父類下進行的測試。我想我可以創建一個SUBDIR模板的父項目或容器項目,並且包含兩個項目(實際的源代碼和單元測試)並排居住。對於這樣一個複雜的軟件(Qt),不得不訴諸於這種混雜/駭客來說,至少可以說是非常醜陋。必須有更好的方法來做到這一點。 – 2014-09-28 10:08:57