【问题标题】:application code coverage after running UI selenium functional tests运行 UI selenium 功能测试后的应用程序代码覆盖率
【发布时间】:2016-09-17 15:40:06
【问题描述】:
在使用 selenium 进行基于 GUI 的功能测试后,我正在尝试获取 java 源代码覆盖率。
在 java 中运行 selenium 功能测试后,执行或覆盖了所有源(实际应用程序)代码(NOT selenium test code)。
这可以使用 Emma 或 jacoco 或其他任何方法来实现吗?
任何做过这件事的人都可以给我一个想法来开始这个吗?
【问题讨论】:
标签:
java
selenium
code-coverage
jacoco
emma
【解决方案1】:
我们的Java Test Coverage tool 可以做到这一点。
这个过程很简单:
- 将测试覆盖率工具检测器应用到您的源代码并编译。
- 运行应用程序,以您希望的任何方式执行它(包括运行 selenium、手动交互或单元测试)
- 使应用程序从 main 中退出。
- 插入到 main 中的检测器代码将写入覆盖率数据
- 使用工具 GUI 界面显示/探索测试覆盖率
您可能有一个长时间运行的(服务器)应用程序不会自然退出;在这种情况下,您无法通过退出 main 来丢弃测试覆盖率,因为您没有退出。在这种情况下,您可以在应用程序的某个位置添加对工具的 DumpTestCoverage() 方法的调用,您可以通过与应用程序的某些交互来执行该调用。然后,当您需要快照时,只需使用该功能即可。
【解决方案2】:
我总是在 Gradle 中使用 Jacoco 插件。它很酷,它可以生成报告并使一切变得简单。您可以在 build.gradle 文件中进行配置。