簡體   English   中英

使用FinalBuilder和AQTime獲取DUnit測試覆蓋率統計數據

[英]Getting DUnit Test Coverage stats using FinalBuilder and AQTime

我們有一個龐大的Delphi項目(150萬行代碼),我們正在轉向使用敏捷流程。

我們已經有了一個連續的集成環境(FinalBuilder),我已將其更新為包含單元測試(dUnit)和代碼指標(CodeHealer)的電子郵件給我們開發團隊中的每個人。 我們的單元測試覆蓋率並不高,所以我現在正試圖將AQtime納入混合,以便在每次構建時獲得一些測試覆蓋率結果。

我正在使用“執行程序”任務來運行單元測試可執行文件,記錄結果並隨后解析文件。 我打算使用“運行腳本”任務來運行AQtime(通過COM)並將結果導出到XML,以便我可以解析這些結果。

我遇到的問題是AQtime運行單元測試可執行文件,我失去了直接監視單元測試可執行文件的能力。 我想讓FinalBuilder解析兩個任務的結果。 有沒有人知道如何從AQtime調用dUnit結果?

我們跑了同樣的路徑,我們不從AQTime運行DUnit測試,

相反,我們使用FinalBuilder構建並運行我們的Dunit測試。

我們的單元測試使用XmlTestRunner,然后我們可以在生成的XML文件上使用XPath查詢非常容易地知道測試是否失敗。

更新: FinalBuilder 7.0的最新更新現在支持DUnit。 它是通過自己的XMLTestrunner.pas,安裝后在FinalBuilder目錄下。 該跑步者以與NUnit相同的格式輸出測試結果。 然后它很好地集成到FinalBuilder服務器中。

您有點描述我們正在慢慢發展的設置。

  • 使用TextTestRunner單元中定義的TTextTestListener將DUnit測試編譯為控制台應用程序。
  • CI服務器是一個cmd腳本,用於構建所有項目並執行所有測試。
  • 測試的輸出通過管道傳輸到文件。

一個解決方案可能是讓AQTime配置這些控制台應用程序,同時仍然能夠將結果傳遞給一個可以在之后解析的文件?!

另一種解決方案可能是實現您自己的TestListener對象,並讓該對象將測試結果寫入事件日志,直接寫入日志文件,數據庫或您喜歡的任何地方,並由FinalBuilder接收。

而不是在項目文件中有這樣的東西

  Application.Initialize;
  if System.IsConsole then TextTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;

它會變成這樣的東西

  Application.Initialize;
  if System.IsConsole then OurEventLogTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM