2012-06-06 66 views
2

我是JaCoCo的新手,并试图弄清楚为什么我生成的html报告与我的来源没有关联。JaCoCo报告看起来正确,但无法查看来源

覆盖范围数字看起来是正确的,我可以浏览到每个类然后每种方法,但我看不到源。我已经在sourcefiles标签内尝试过很多不同的东西,但没有任何工作。其他人遇到过这个问题吗?这里是我的ant脚本的一个片段:

...

<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> 

...

回答

1

fileset定义似乎有些奇怪。

的包括必须是(第一个是错误的。):

includes="**/*.java 

尽量简单地将它指向的你的src目录(没有必要对包括)

<fileset dir="fw" /> 

根但是fw必须是你的来源的根源,也就是说它包含如下的包文件夹:

src 
-org 
    -module 
    -MyClass1.java 
    -MyClass2.java 
+0

谢谢。这是我在文件集中指定的目录的问题。将“fw”更改为“。”解决了我的问题。 – Jeff

+0

谢谢,这个答案帮助了我。最初我有'dir =“src”'并且与作者有同样的问题,但是当它改为'dir =“src/main/java”'时,我得到了我的源代码覆盖。 –

0

我已经看到了这个相对于标准

src/main/java/com/example/foo/bar/Foo.java 

大多数工具打破使用Scala的风格包目录名称,例如,当,

src/main/java/com.example.foo.bar/Foo.java 

较少层嵌套,更快的自动完成,&角,只是支持的第一个版本很好,但通常如果你试试看,一切正常,当你注意到像jacoco报告不再显示源的东西时,你已经忘记了目录名称的变化...