Eclipse 插件开发:自定义分析器(JDT)

Eclipse plugin development: custom profiler (JDT )

我正在为 Java 开发代码分析作为 Eclipse 插件,它将使用 JDT 输出 Java 代码的执行路径和代码覆盖率信息。

如何提取执行过程中执行了哪些行等信息,以确定执行路径和代码覆盖率?

我正在研究 JDT COREJDT DEBUG 但到目前为止我还没有找到解决方法跟踪执行了哪些行。

(这个问题似乎很宽泛,所以我提供了一个同样宽泛的答案,希望你觉得有用。)

EclEmma is a Java Code Coverage plug-in for Eclipse. It uses a library called JaCoCo 提供代码覆盖率。检查该开源项目的源代码可能是了解如何实现您自己的探查器的最佳方式(或者可能将改进回馈给 EclEmma)。

JaCoCo 的源存储库位于 github:https://github.com/jacoco/jacoco, but the 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());