2011-03-29 13 views
1

我是主要編寫在Qt中的大型(有點...)C++應用程序的一部分。 我想知道這是否正確/常用的方法: 每當我對某些/幾個源文件進行更改時,我會以調試模式編譯它(QtCreator),然後啓動並測試它。 問題是,每個編譯需要幾分鐘的時間(通常是1 - 3分鐘),我討厭這個,我想我在這裏做錯了什麼,也許編譯整個項目的每一個小變化都不是正確的道路去?C++和Qt應用程序的測試過程

感謝,

+0

如果您使用的是g ++,爲什麼不使用'-c'選項來編譯部分文件? – Sadique 2011-03-29 19:25:10

+0

@Acme QtCreator在兩階段編譯中使用mingw,他可能可以將它添加到項目設置的qmake步驟,雖然 – AJG85 2011-03-29 20:26:44

回答

1

嘗試儘可能使用QTest進行單元測試,然後您可以先驗證部件,然後在完整的應用程序中對其進行一些測試。這樣可以節省大量時間,並且如果做得對,也可以幫助生成更健壯的代碼。

這確實需要某種模塊化的方法,所以代碼需要以某種方式進行分組。

+0

這對於自動化測試非常有用,但如果他關注幾分鐘的構建時間,我懷疑他有時間正確實現'QTestLib' ... +1儘管如此 – AJG85 2011-03-30 15:55:24

+0

我使用QTest作爲我的開發的一部分,因此我不必經常重建整個應用程序。所以我花在編譯上的總時間變得更短......所以這隻能間接幫助。 – Johan 2011-03-30 16:57:35

1

最有可能的,你需要調整您的構建設置,以確保你正在做的最少重建或增量構建它只是編譯過更改並不會更新或重建任何不直接受這些文件變化。當你改變整個項目中包含的頭文件時,這仍然沒有幫助,但是這個項目不應該發生。

一般有幾種方法來測試,當您去,但這裏有兩個主要的事情,我會建議:

  1. 不要重建整個項目(不乾淨,沒有rebuid全部)只是做隨着時間的推移構建和測試。非常適用於測試gui變化和項目中的小事情,這些項目不需要與百萬條鏈接或長時間啓動。
  2. 使用控制檯應用程序或簡單測試應用程序將其作爲單獨的項目進行開發,但不包含在最終的集成版本中,但可以保留以後進行獨立測試。這對圖書館來說比較好,比如說你正在製作一個新的加密算法或者文件管理器來替換一個較大項目的一些陳舊的部分。

當然,編譯和運行它非常受歡迎,但效果不是很好,所以編碼方式總是像瘋狂的人一樣編碼,並且穿過手指。

0

您的項目中是否有多個SUBDIRS目標?如果答案是肯定的,你可以嘗試調整項目文件,首先從項目文件中刪除所有「排序」關鍵字,然後如果一個子目錄依賴於另一個,則將它們聲明爲依賴關係。最後,確保你傳遞了-jX值(也就是說,如果你的構建規則使用make),以便在編譯時使用所有的cpu核心。