首页 > 解决方案 > 如何获取 Web App 的代码覆盖率?

问题描述

我有 repo A,我们有我们的应用程序代码和 repo B,我们有 Selenium 代码。现在我们需要获取代码覆盖率。

任何可能的解决方案?

标签: seleniumcode-coveragejacoco

解决方案


你有点想从系统测试中计算代码覆盖率。使用 jacoco 等工具测量的代码覆盖率通常在作为源代码构建的一部分的单元测试中完成。也就是说,它是作为执行“编译”阶段的同一 Maven 构建的“测试”或“集成测试”阶段的一部分生成的。Jacoco 在这种情况下非常容易使用。

Selenium 测试更具系统测试级别,因为它们在运行的系统上工作。.CLASS 文件上的源代码检测在这个领域更加困难,因此您必须跳过痛苦的圈子才能从 selenium 获得 jacoco 结果。

此外,在 Selenium 中追逐代码覆盖率是一个坏主意。当你想确保所有分支都被覆盖时,你必须编写一堆测试来测试排列。您需要一个轻量级框架(即单元测试)来验证排列。使用像 selenium 这样的重量级框架意味着你要花费大量时间来启动和关闭容器。这并不是说 Selenium 不好。您必须在单元测试领域进行测量代码覆盖率,然后通过少数系统测试证明这些单元测试是有意义的。Selenium(未测量)提供了可信度,即“我们有 80% 代码覆盖率的单元测试”这样的陈述表明“我们的系统有可靠的测试”


推荐阅读