我正在寻找一种工具,可以为我的团队提供更有意义的代码覆盖率指标。例如,我想看到以下两个内容:
- 我们团队在上一个迭代周期中编写的代码的覆盖率有多少?
- 新代码的覆盖率如何按开发人员细分?
看看Sonar。它可以告诉你每个迭代的发布情况。
你有两个问题:
1)我当前拥有的代码覆盖率是多少? 2)与我以前拥有的覆盖率相比,现在的覆盖率如何?
我认为你需要三个工具:
a)计算你应用程序此刻的覆盖率的工具,
b)计算你现在拥有的和上一次计算代码覆盖率时拥有的差异的工具,
c)挑选出改变的覆盖数据的工具。
您可以从许多 Java 测试覆盖工具中获取 a),但是您需要以可处理的形式获得 c)。SD Java Test Coverage Tool 提供了可用于使用的数据。测试覆盖率以带有行号数据的 XML 形式报告,因此您可以轻松构建工具来提取所需内容。
b) 任何差异工具都可以用来识别文件差异,前提是假设上一个版本和这个版本的文件一一对应。如果不是这样,您可以简单地假定测试覆盖数据完全不同 :-} 然而,您希望获得最小的差异;请参见SD Java Smart Differencer Tool,这是一个比传统差异计算更小的工具。智能差分器的输出是机器可读的。 c) 对于这个问题没有现成的答案,但是一个结合了a)和b)信息的Perl脚本可能会解决问题。您想要报告的是,对于差异工具识别出的每个明确的差异,覆盖数据是什么,以及对于根据差异工具未更改的所有代码,新覆盖是否低于旧覆盖。