簡體   English   中英

Jacoco 報告顯示已刪除的 Java 類以進行測試覆蓋

[英]Jacoco report showing deleted java class for test coverage

我只是刪除了沒有用的java類文件。在intellij中構建包后,Jacoco測試報告也顯示了已刪除的java類。 作為參考,我附上了 sceenshot。

即使在intellij中刪除java類文件后,是否存在任何引用? 我怎樣才能徹底解決這個問題? 在此處輸入圖片說明

為您使用的任何構建工具(ant、maven、gradle)運行clean命令。

如果您只是偶爾運行jacocoTestReport ,您可能需要為其添加對clean的依賴,以確保它始終在生成報告之前發生。

當我更改類上的包名稱並且舊包仍在報告中時,我注意到了同樣的問題。

發生的事情是創建的報告只是一堆文件,這些文件遵循項目中文件的命名和包約定。 因此,即使您已刪除 java 文件並重新運行jacocoTestReport ,先前運行jacocoTestReport文件仍位於該報告文件夾中。 如果您查看文件夾,您會發現已刪除類的報告文件中的時間戳比周圍的其他文件要舊。 它只需要clean以便您的下一次運行將只包含與當前報告相關的文件。

我認為可以更改jacocoTestReport將在哪里寫入報告文件,如果您選擇構建目錄以外的其他位置,則還需要更新您的clean任務以清理該區域。

今天同樣的事情發生在我身上。 這是由於:

  • 簽出到已刪除 Maven 模塊的 git 分支
  • 相應的文件夾仍然在這里,但它被 git 忽略了,因為它只包含被忽略的文件(例如target/ .class文件)
  • mvn clean沒有清理這些文件,因為相應的模塊已從pom.xml中刪除
  • Jacoco 仍然找到舊的編譯類,因為它查找**/classes**/**.exec ,並且它不關心.gitignorepom.xml

刪除刪除舊文件后,Jacoco 報告的覆蓋率發生了變化。

我使用git clean -f -d --dry-run來查找舊文件夾,並使用git clean -f -d刪除它們。 請小心使用此命令!

暫無
暫無

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

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