2017-02-24 59 views
0

是否有能力爲屬於我的類路徑的JAR文件生成代碼覆蓋率報告?構建JAR的代碼覆蓋率

jar已經編譯並作爲庫添加到Gradle項目中。

jar的測試代碼存儲在項目中。

回答

2

有沒有來生成代碼覆蓋率報告爲添加到類路徑罐子應該有能力?

。你是不是告訴你正在使用它,雖然代碼覆蓋工具,我曾與CoberturaJaCoCo

代碼覆蓋率一般經歷3個階段:

  1. 儀表:您針對編譯的類運行代碼覆蓋率工具,該工具創建類的檢測版本。從概念上講,插裝類在每一行增加一個計數器都有代碼注入。這是如何跟蹤哪條線被訪問過。
  2. 代碼執行工具類:代碼運行,計數器收集哪些行已被訪問。
  3. 舉報:讀取計數器收集的數據並用於生成代碼覆蓋率報告。在此階段,您需要源代碼,以便代碼覆蓋率工具可以將代碼覆蓋率結果與實際來源相匹配。

在您的場景中,您可以做的是解壓縮您希望代碼覆蓋的JAR,然後將這些類壓縮到另一個JAR中。用儀表類替換原始JAR和JAR。

這是一個非標準的工作流程,不得在螞蟻/ Maven的輕鬆配置,但是你可以按照如下手工進行:

+0

在JaCoCo的情況下,你不需要解壓縮和儀器類文件 - JaCoCo代理(http://www.jacoco.org/jacoco/trunk/doc/agent。 HTML)儀器類即時。 – Godin

1

我認爲你可以定製你自己這樣一個解決方案:

  1. 你做你的「覆蓋數據收集」
  2. export的,結果;例如成CSV數據
  3. 你寫的代碼,做一點點獲得所有類的名稱/任何JAR檔案包
  4. 然後你只需提取你產生:使用步驟3
  5. CSV文件中的行

給出您的評論:似乎你不明白「報道」爲你做了什麼。重點是:你啓動一個JVM; JVM 運行一些代碼。雖然如此,數據收集關於被使用的類/方法,採取的路徑等

換句話說:

  • 驅動的JVM運行的東西
  • 覆蓋率框架做筆記其中代碼路徑採取

沒有在該進程中涉及特定 JAR文件。覆蓋範圍只檢查其中代碼正在運行。這映射「,其中的代碼是來是不同方面。

+0

對不起,也許問題不夠清楚。我可以爲已編譯的jar創建覆蓋率報告嗎? –

+0

@AndriiAbramov是的,你可以 – Godin

+0

@GhostCat,謝謝,絕對是upvote。但是,恩格索爾斯的答案更爲詳細,完全適用於我的情況。 –