2012-06-06 89 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報告不再顯示源的東西時,你已經忘記了目錄名稱的變化...