Jacoco报告显示已删除的java类的测试覆盖率

Jacoco报告显示已删除的java类的测试覆盖率,java,junit,jacoco,intellij-15,Java,Junit,Jacoco,Intellij 15,我只是删除了无用的java类文件。在intellij中构建包之后,Jacoco测试报告也显示了已删除的java类。为了便于参考,我附上了sceenshot 在intellij中删除java类文件后是否存在引用。我如何才能完全解决这个问题? 对您正在使用的任何构建工具(ant、maven、gradle)运行clean命令 如果您只是偶尔运行jacotestreport,您可能希望为它添加一个对clean的依赖项,以确保它总是在生成报告之前发生 当我在一个类上更改了一个包名,而旧包仍在报告中时,我注

我只是删除了无用的java类文件。在intellij中构建包之后,Jacoco测试报告也显示了已删除的java类。为了便于参考,我附上了sceenshot

在intellij中删除java类文件后是否存在引用。我如何才能完全解决这个问题?

对您正在使用的任何构建工具(ant、maven、gradle)运行
clean
命令

如果您只是偶尔运行
jacotestreport
,您可能希望为它添加一个对
clean
的依赖项,以确保它总是在生成报告之前发生

当我在一个类上更改了一个包名,而旧包仍在报告中时,我注意到了同样的问题

正在发生的是,创建的报告只是一组文件,它们遵循项目中文件的命名和包约定。因此,上一次运行的
jacotestreport
中的文件仍然位于该报告文件夹中,即使您已删除该java文件,并重新运行
jacotestreport
。如果查看文件夹,您会发现已删除类的报告文件上的时间戳比其周围的其他时间戳旧。它只需要清理,以便下次运行时只包含与当前报告相关的文件


我假设可以更改
jacotestreport
写入报告文件的位置,如果您选择构建目录以外的其他位置,则需要更新
clean
任务来清理该区域。

今天我也遇到了同样的情况。这是由于:

  • 签出到已删除maven模块的git分支
  • 相应的文件夹仍然在这里,但git忽略了它,因为它只包含被忽略的文件(例如
    目标/
    中的
    文件)
  • mvn clean
    没有清理这些文件,因为相应的模块已从
    pom.xml
  • Jacoco仍然找到了旧的编译类,因为它查找
    ***/classes
    ***/**.exec
    ,而不关心
    .gitignore
    pom.xml
删除旧文件后,Jacoco报告的覆盖率发生了变化


我使用
git clean-f-d--dry run
查找旧文件夹,并使用
git clean-f-d
删除它们。请小心这个命令

您是否同时删除了
*.java
*.class
文件?您是否已检查(文件系统)两个文件都已删除?(删除
*.class
文件,但构建包将再次从
*.java
创建它;但我不知道Jacoco,不确定缓存了什么)