Jacoco报告显示已删除的Java类以进行测试

时间:2019-12-15 07:22:41

标签: java junit jacoco intellij-15

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

即使在intellij中删除了Java类文件之后,是否存在任何引用。如何完全解决此问题? enter image description here

2 个答案:

答案 0 :(得分:1)

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

如果仅偶尔运行jacocoTestReport,则可能要为其添加一个对clean的依赖,以确保它始终在生成报告之前发生。

当我在类上更改程序包名称并且旧程序包仍在报告中时,我注意到了同样的问题。

发生的事情是,所创建的报告只是一堆文件,这些文件遵循项目中文件的命名和打包约定。因此,即使您删除了Java文件并重新运行jacocoTestReport,上一次运行jacocoTestReport的文件仍位于该报告文件夹中。如果您在文件夹中查找,则会发现报告文件中已删除类的时间戳早于其周围的时间戳。它只需要clean,这样您的下一次运行将只包含与当前报告相关的文件。

我认为可以更改jacocoTestReport写入报告文件的位置,并且如果选择除构建目录之外的其他位置,则还需要更新clean任务以清理该区域。

答案 1 :(得分:0)

今天我也发生了同样的事情。这是由于:

  • 签出到其中删除了maven模块的git分支
  • 相应的文件夹仍在此处,但由于git仅包含被忽略的文件(例如.class中的target/个文件)而被git忽略
  • mvn clean没有清除这些文件,因为相应的模块已从pom.xml中删除
  • Jacoco仍然找到了旧的编译类,因为它查找**/classes**/**.exec,而不关心.gitignorepom.xml

删除后,删除旧文件,Jacoco报告的覆盖范围已更改。

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