Delphi Code Coverage是Delphi的簡單代碼覆蓋工具,它基於詳細的地圖文件創建代碼覆蓋範圍報告。
還請查看此項目,因為它在Delphi IDE中添加了一個嚮導,以幫助創建配置並啟動Delphi代碼覆蓋範圍。
您要運行的項目的項目必須具有“調試”配置,以生成詳細的地圖文件。
Delphi代碼覆蓋範圍當前僅測量“線路覆蓋”,即它將跟踪為生成代碼生成的每條線,並在執行時將其標記。
對於使用Borland軟件包庫(本質上是DLL)或外部DLL的應用程序,DCC將嘗試為每個DLL加載一個.map文件,並且如果其存在並且這些庫中的單位是覆蓋單元的一部分,則代碼覆蓋範圍將跨越DLL/BPL作為應用程序的一部分。 .map文件需要與已加載的DLL相同的目錄中存在。
下載最新版本,解壓縮文件,例如在Delphi安裝“ bin”目錄或“路徑”中的某個地方放置它。
所有參數也了解批處理樣式的環境變量(例如Windir%等),如果將文件用於源目錄(請參閱-spf ),則還允許環境變量。可以通過準備“!”來排除單位文件中的特定單位(請參閱-uf )。在單位名稱之前。
在您的編譯應用程序和可執行文件的目錄中打開命令行提示符。
類型: CodeCoverage -m TestApp.map -e TestApp.exe -u TestUnit TestUnit2 -xml -html
由於使用了較新的語言功能,因此需要一些較新的編譯器。已知該項目不支持Delphi XE2。 XE3可能會起作用。主開發是通過10.x版本完成的。
-html作為參數)對於每個單元,將有一個單位。綠線覆蓋了。紅線沒有覆蓋線。其他行沒有生成代碼。還有一個codecoverage_summary.html文件,該文件匯總了覆蓋範圍並具有指向生成的單元報告的鏈接。
-xml作為參數)在輸出目錄中生成了一個稱為codecoverage_summary.xml的摘要XML報告,該報告與Emma的XML輸出兼容。與開關“ -xmllines”和“ -XMLGenerics”結合使用,每行詳細的代碼覆蓋範圍。
-emma或-emma21作為參數)現在可以創建Emma兼容輸出,該輸出允許使用Emma合併多個代碼覆蓋範圍運行以及使用Emma來生成報告。
DCC與Delphi兼容最高10.4.2,均為32和64位。
您可以在Sonarqube中將XML報告的結果集成在一起。有關詳細信息,請參見此處的Delphi Sonarqube插件或較新版本。
您可以使用Hudson Emma插件集成XML報告。可以使用HTML Publisher插件集成HTML報告。
通過DevFactory和Mendrix的慷慨支持,發布的最新發布成為可能。
該項目的靈感來自伊瑪(Emma)等爪哇世界中的出色工具。這個項目已經在我的硬盤驅動器上以未完成的形式徘徊了一年多。終於它滑出了。
-m MapFile.map | 用作輸入的地圖文件 |
-e Executable.exe | 可執行的運行 |
-sd directory | 可以找到源的目錄 |
-sp directory directory2 | 可以找到源的目錄 |
-spf filename | 使用文件名指向的文件中列出的源目錄。文件中的每行目錄 |
-esm mask1 mask2 etc | 文件蒙版列表,要從單位列表中排除 |
-ism mask1 mask2 etc | 僅搭配單位匹配提供的文件掩碼 |
-ecp prefix1 mask2 etc | 班級前綴列表,要排除在覆蓋範圍之外 |
-od directory | 將輸出文件放置的目錄 - 注意 - 目錄必須存在 |
-u TestUnit TestUnit2 | 應檢查代碼覆蓋的單位 |
-uf filename | 覆蓋文件名指向文件的文件中列出的單元。文件中的每個行 |
-v | 顯示冗長的輸出 |
-dproj ProjectFile.dproj | 解析源文件,可執行名稱,代碼頁和其他選項的項目文件。請注意,如果遇到多個相關開關,則只能具有單個值(例如代碼頁面)的選項將在外觀順序中覆蓋。 |
-a Param Param2 | 要將其傳遞到應檢查的應用程序的參數。 ^是一個逃生角色 |
-lt [filename] | 將事件記錄到文本日誌文件。默認文件名是:delphi-code-coverage-debug.log |
-lapi | 將Windows API outputdebugstring的日誌事件日誌 |
-ife | 包括文件擴展名 - 這將停止“ common.codings”被'轉換為“ common” |
-efe | 排除文件擴展名 - 將“轉換”“ common.encodings.pas”為“ common.encodings”(可悲的是,“ common.codings”為“ common”)。默認情況下,這是開啟。 |
-emma | 在輸出目錄中將Emma覆蓋範圍輸出作為“覆蓋範圍”。 |
-emma21 | 在輸出目錄中生成EMMA21覆蓋範圍輸出為“覆蓋範圍”。 |
-meta | 生成Emma輸出 - 'Coverage.em'和“ Coverage.ec”時,將生成單獨的元和覆蓋範圍文件,以用於元數據和覆蓋數據。注意:需求 - emma。 |
-xml | 生成XML覆蓋範圍輸出 - 在輸出目錄中生成XML輸出為'codecoverage_summary.xml'。 |
-xmllines | 在生成的XML覆蓋範圍輸出中增加線覆蓋率。 |
-xmlgenerics | 結合使用同一文件名的多個出現的線覆蓋範圍(在通用類中尤其有用)。 |
-html | 在輸出目錄中生成html覆蓋範圍輸出為“ codecoverage_summary.html”。 |
-uns dll_or_exe unitname [unitname_2] | 創建一個單獨的名稱空間(名稱名稱將是模塊的名稱,而無需擴展名) |
-mns name dll_or_exe [dll_or_exe_2] | 使用列出的DLL:s的給定名稱創建一個單獨的名稱空間。這些模塊中加載的所有模塊都將均為名稱。 |
-lcl LineCountLimit | 計數次數執行到指定限制的次數 |
-cp CodePage | 源文件的代碼頁號碼 |
-tec | 通過檢查應用程序的出口檢查 |
-twd | 將應用程序的路徑作為工作目錄 |
Delphi代碼覆蓋範圍是根據Mozilla公共許可證的條款獲得許可的,第2.0節。您可以在http://mozilla.org/mpl/2.0/上獲取許可證的副本。