【发布时间】:2018-10-12 11:43:05
【问题描述】:
我最近在 Eclipse 中使用 EclEmma 插件来查找我的应用程序中 JUnits 的代码覆盖率,效果很好。
在下一步中,我希望能够找到从外部在我们的应用程序上调用的端到端测试/功能测试的代码覆盖率(它们驻留在单独的服务器上)。
基本上,我们将应用程序打包为 jar(我们使用 maven)并将其部署在服务器上。我们可以在这个位置触发功能测试。
在这种情况下有没有办法找到代码覆盖率?
我对代码覆盖工具工作原理的理解(原始语言)是它加载类并根据已命中的代码部分生成报告。因此,根据这种理解,我不需要访问测试代码。我只需要将代码覆盖工具插入到我的应用程序 jar 中,只要调用此 jar 中的任何代码,就会更新报告。 我的理解正确吗?
注意: 如果可以使用其他工具,我愿意使用其他代码覆盖率工具。
【问题讨论】:
-
我相信您对“外部”测试的理解是有缺陷的。代码覆盖率是开发人员测试覆盖率指标。 QA 测试应该根据需求测试代码;基本上“此输入在软件中生成此活动,如此输出所示”。
-
重点是我们要确保在交付给客户之前,无论测试的性质如何,我们的代码的最大部分已经被测试触及。
-
然后执行单元测试覆盖代码。
-
@DwB 来自更高级别测试的代码覆盖率报告——甚至来自手动测试或什至来自实际使用的一段时间——是信息丰富且有用的。您不应将覆盖率百分比用作指标。但是您可以查看报告并查看“嘿,为什么该方法永远不会执行?”的内容; “啊,看,我们的功能开关正在工作”,“嗯,那个位不应该触发”等等。
-
@slim 这几乎概括了我的意图
标签: java maven jenkins code-coverage jacoco