Java测试覆盖率:谁覆盖了什么?

6

有没有类似于Emma的工具,可以报告哪个测试覆盖了特定的实现?


我会使用调试器来设置断点,运行测试以查看哪个测试正在运行,然后它会命中那一行代码。 - Peter Lawrey
1,500,000 行代码,50-70% 的聚合测试覆盖率(包括 itest 和 unittest)。目前正在尝试提高 / 理解一个有 30,000 行代码的模块的测试覆盖率。我需要一些好的报告,而不是个人手动尝试... - Bastl
你能同时运行一组测试并检查该组的报告吗? - Peter Lawrey
2个回答

6

如果您想查看哪些测试覆盖了哪些代码行,可以使用Clover,它会向您展示:

  • 一行代码被覆盖的次数
  • 哪些测试覆盖了该行代码

为了了解Clover的功能,这里有一张截图: Clover coverage report. Opened info about test that hit line #49


0

如果您不想麻烦支付/设置Cover,一种更简单的方法是:

  • 删除/禁用所有断点
  • 在您想要知道测试覆盖它的行上设置断点
  • 以调试模式重新运行测试
  • 查看堆栈跟踪以找到调用它的测试

这种方法还允许您查看一行被覆盖的次数以及调用它的所有测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接