我是JaCoCo的新手,并试图找出为什么我生成的html报告与我的来源没有关联。
覆盖率数字看起来正确,我可以浏览每个类,然后每个方法,但我看不到来源。我在sourcefiles标签中尝试了很多不同的东西,但没有任何工作。其他人遇到过这个问题吗?这是我的蚂蚁脚本的片段:
...
<test name="test.fw.UITestSuite" todir="${logdir}"/>
</junit>
</jacoco:coverage>
<fail if="TestFailed" status="1" message="UI junit test failure detected"/>
<echo message="${src}"/>
<jacoco:report>
<executiondata>
<file file="jacoco.exec"/>
</executiondata>
<structure name="UI">
<classfiles>
<fileset dir="${build}/fw"/>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="fw" includes="**./*.java"/>
</sourcefiles>
</structure>
<html destdir="report"/>
</jacoco:report>
</target>
...
答案 0 :(得分:1)
您的fileset
定义似乎很奇怪。
包含必须(第一个。放错地方):
includes="**/*.java
尝试将其指向src dir的根目录(不需要包含)
<fileset dir="fw" />
但是fw必须是你的来源的根,即它包含像:
这样的包文件夹src
-org
-module
-MyClass1.java
-MyClass2.java
答案 1 :(得分:0)
使用Scala风格的包目录名时,我已经看到了这种中断,例如,
src/main/java/com.example.foo.bar/Foo.java
与标准相比,用于更少的嵌套级别,更快的自动完成和&lt; c。
src/main/java/com/example/foo/bar/Foo.java
大多数工具支持第一个版本就好了,但通常如果你试一试并且一切正常,当你注意到jacoco报告不再显示源代码时,你早就忘记了目录名称的变化......