2017-02-24 61 views
0

是否有能力为属于我的类路径的JAR文件生成代码覆盖率报告?构建JAR的代码覆盖率

jar已经编译并作为库添加到Gradle项目中。

jar的测试代码存储在项目中。

回答

2

有没有来生成代码覆盖率报告为添加到类路径罐子应该有能力?

。你是不是告诉你正在使用它,虽然代码覆盖工具,我曾与CoberturaJaCoCo

代码覆盖率一般经历3个阶段:

  1. 仪表:您针对编译的类运行代码覆盖率工具,该工具创建类的检测版本。从概念上讲,插装类在每一行增加一个计数器都有代码注入。这是如何跟踪哪条线被访问过。
  2. 代码执行工具类:代码运行,计数器收集哪些行已被访问。
  3. 举报:读取计数器收集的数据并用于生成代码覆盖率报告。在此阶段,您需要源代码,以便代码覆盖率工具可以将代码覆盖率结果与实际来源相匹配。

在您的场景中,您可以做的是解压缩您希望代码覆盖的JAR,然后将这些类压缩到另一个JAR中。用仪表类替换原始JAR和JAR。

这是一个非标准的工作流程,不得在蚂蚁/ Maven的轻松配置,但是你可以按照如下手工进行:

+0

在JaCoCo的情况下,你不需要解压缩和仪器类文件 - JaCoCo代理(http://www.jacoco.org/jacoco/trunk/doc/agent。 HTML)仪器类即时。 – Godin

1

我认为你可以定制你自己这样一个解决方案:

  1. 你做你的“覆盖数据收集”
  2. export的,结果;例如成CSV数据
  3. 你写的代码,做一点点获得所有类的名称/任何JAR档案包
  4. 然后你只需提取你产生:使用步骤3
  5. CSV文件中的行

给出您的评论:似乎你不明白“报道”为你做了什么。重点是:你启动一个JVM; JVM 运行一些代码。虽然如此,数据收集关于被使用的类/方法,采取的路径等

换句话说:

  • 驱动的JVM运行的东西
  • 覆盖率框架做笔记其中代码路径采取

没有在该进程中涉及特定 JAR文件。覆盖范围只检查其中代码正在运行。这映射“,其中的代码是来是不同方面。

+0

对不起,也许问题不够清楚。我可以为已编译的jar创建覆盖率报告吗? –

+0

@AndriiAbramov是的,你可以 – Godin

+0

@GhostCat,谢谢,绝对是upvote。但是,恩格索尔斯的答案更为详细,完全适用于我的情况。 –