检测提交的单元测试代码覆盖率

时间:2015-12-16 09:48:19

标签: unit-testing junit

假设我使用的语言是Java,我做了一个特定的提交,有没有一种方法可以告诉提交的代码覆盖率,或者即使它已经完成了?当用户提交到存储库时,我想要有关于提交的多个统计信息,包括该特定提交的单元测试覆盖率。这甚至可能吗?是否已经有这样的工具或者我需要考虑定制的东西吗?

我正在Gitblit下使用Git,我已经看到了Gitblit的钩子机制,因此只是如何做到这一点。

1 个答案:

答案 0 :(得分:1)

我现在正在研究同样的问题,并且我已经采用了这种方法:

  • 我的项目是基于Java和Maven的。他们每个人都从一个共同的父母那里继承。
  • 在普通父母pom中,我在集成测试阶段设置了jacoco-maven-plugin来计算单元测试覆盖率。生成的报告与源代码一起存储在同一个项目中。
  • 每次开发人员提交源控制系统时,他/她也会提交报告,以便我将查询已完成的每次提交的覆盖状态。

这已经完成并且正在运行。我的下一步将是开发一个工具来查询源代码管理系统(在我的情况下是SVN)来获取覆盖率统计信息:按日期,项目,甚至是用户。

请注意,Jacoco生成的报告是绝对,而非增量报告。如果你想要它增量(我也想要),你必须计算一个报告和前一个报告之间的差异。

要查询当前正在使用org.tmatesoft.svnkit:svnkit:1.3.8的SVN。

同样的程序可以应用于其他代码指标:规则合规性等。