2015-11-04 59 views
0

我正在爲Java開發Java代碼分析,作爲Eclipse插件,它將使用JDT輸出Java代碼的執行路徑和代碼覆蓋率信息。Eclipse插件開發:自定義分析器(JDT)

如何提取執行期間執行哪些行以確定執行路徑和代碼覆蓋率等信息?

我期待到JDT核心JDT DEBUG但到目前爲止,我沒能找到一種方法,我怎麼可以跟蹤被執行了哪些行。

+0

這裏有兩個完全不同的問題,使得任何人都難以回答因爲他們需要了解Eclipse的不同方面。 –

+0

好的,我已經編輯了這個問題,專注於一個方面 – ammar26

回答

1

(這個問題似乎很廣泛,所以我提供同樣廣泛的答案,希望你覺得它有用。)

EclEmma是一個Java代碼覆蓋插件的Eclipse插件。它使用名爲JaCoCo的庫來提供代碼覆蓋率。檢查該開源項目的源代碼可能是理解如何實現自己的分析器的最好方法(或者也許改進回EclEmma)。

JaCoCo的源代碼存儲庫位於github上:https://github.com/jacoco/jacoco,但CoreTutorial可能是一個很好的開始。

教程的一個關鍵部分是:

// Together with the original class definition we can calculate coverage 
// information: 
final CoverageBuilder coverageBuilder = new CoverageBuilder(); 
final Analyzer analyzer = new Analyzer(executionData, coverageBuilder); 
analyzer.analyzeClass(getTargetClass(targetName), targetName); 

此後不久又打印出一些行信息:

printCounter("lines", cc.getLineCounter());