2011-09-18 64 views
8

我即將開始一個C++項目,但我堅持了基礎知識。開始Code :: blocks和UnitTest ++

我想用(Linux)的代碼::塊IDE,並可以很容易地創建一個普通的項目。不過,我想用UnitTest ++框架來完成TDD,而且我不知道如何清理乾淨。

我已經問了一個question關於把UnitTest::RunAllTests()命令放在哪裏,他們告訴我最好的地方是單獨程序的main()

我如何去在代碼::塊這樣做呢?我想我需要創建2個項目:

  • 「真實」項目有自己的main();
  • 含有試驗和main()UnitTest::RunAllTests()內的單元測試項目。

然後以某種方式建立第一個項目並在其構建過程中運行第二個項目。我不知道該怎麼做,但我可以自己發現。

我的問題是:

  1. 這是正確的方法是什麼?
  2. 我是否還必須爲UnitTest ++框架創建一個項目,以便讓其他人在其他平臺上構建它?或者是否已將編譯好的庫放在項目的路徑上?
  3. 我該如何組織這些項目的目錄?將與每個軟件包相關的測試放在與該軟件包相同的目錄中會很好,但是在同一目錄樹中有多個項目可以嗎?
+0

UnitTest ++上的不錯選擇 –

回答

4

我部分回答我自己的問題,因爲我已經成功地得到一切工作。

  1. 繼上official documentation page的說明,我已經把單元測試++文件夾在我的項目的路徑已編譯庫和所有的源文件。
  2. 然後,我創建了一個測試項目的所有單元測試,包含著名的UnitTest::RunAllTests()一個主要功能。我在這裏將$exe_output作爲後期構建過程,以便每次構建此項目時自動執行測試。
  3. 我創建了「真正的」項目,我的代碼將被測試。在構建設置中,我將測試項目指定爲實際項目的依賴項,以便每次構建真實項目時,都會首先構建測試項目。

有了這些設置,我可以在我的測試和真實代碼上工作,而且我只需構建一個真正的代碼來執行更新的測試。任何失敗的測試也會使構建失敗。

現在兩個問題依然是:「這是最好的方法?」和「現在每個項目都存在於不同的目錄中,以這種方式離開它還是更明智一些,還是應該將每個測試放在與待測試的實際代碼相同的文件夾中?」