xml地图|网站地图|网站标签 [设为首页] [加入收藏]

美高梅游戏网站

当前位置:美高梅游戏网站 > 美高梅游戏网站 > 开源JavaScript代码覆盖率工具ScriptCover

开源JavaScript代码覆盖率工具ScriptCover

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-03 22:13

Google已经宣布ScriptCover将作为一个开源项目发布。ScriptCover是Google推出的一款JavaScript代码覆盖率分析工具,为Web页面提供实时、逐行的代码覆盖分析。Google表示,ScriptCover最终将应用在Chrome浏览器上成为它的一个扩展。

前言
Android 开发统计代码覆盖率,在之前的老版本中,需要借助第三方工具,在现在的新版本中,只要使用JaCoCo插件,就可以完成简单覆盖率测试。
与 Espresso 框架结合,进行覆盖率测试
Android SDK 现在已经内置了对 Emma Test Coverage框架的支持,可以在官方文档中进行查阅。 具体由 JaCoCo 工具进行覆盖率相关内容。 1.1 配置: 在 build.gradle 中将 testCoverageEnabled
设置为 true

图片 1

android {
   buildTypes {
      debug {
         testCoverageEnabled = true
      }
   }
}

ScriptCover的测试结果将显示在一个持续加载的页面上,在用户操作网站时它会自动更新。其结果可以通过一个报告工具随时查看,并且ScriptCover将高亮测试代码以便更详细的分析。

注:部分资料中,可能写需要在 build.gradle 中增加如下配置 apply plugin: 'jacoco'
或者 apply plugin: 'jacoco-android'

Google的软件工程师Ekaterina Kamenskaya表示,ScriptCover在执行手动或自动测试,以及理解、调试复杂代码上很有用。根据Kamenskaya,开发人员设想ScriptCover的功能应该包括:

但是在实际使用发现,这个配置项并不需要。
使用:
为了能生成代码覆盖率报告,我们需要将Android设备或者模拟器连接到计算机,因为 在生成报告前,会执行 connectedCheck
任务。 之后,我们可以执行如下的命令行

支持其他覆盖率度量例如路径覆盖、条件覆盖等)。支持报告导出为HTML和XML格式。可以将覆盖率分析文件提交到服务器上以便更翔实的分析。可将用户行为映射至相关的JavaScript代码。

/gradlew clean assemble

ScriptCover的更多详细信息可以查看Google Open Source博客的这篇文章,以及Google Code上的相关文档。ScriptCover的代码将托管于Google Code上,基于Apache Lience v2。

此命令会清空所有的编译产生class,防止之前的测试对后续造成影响。

下载地址

/gradlew createDebugCoverageReport

...

该任务会分析 /src/main/java/
路径下的代码和 /src/androidTest/java/
目录下测试用例。
在执行这个任务之后,我们可以在模块的如下路径中找到代码覆盖率报告 /build/outputs/reports/coverage/debug/

我们可以在浏览器中打开 index.html 文件,可以看见可视化的报告。 同时,在同一级目录下,我们也可以找到可以供持续集成覆盖率分析使用的 report.xml 文件。

图片 2

这里写图片描述

除了上面提到的文件,Gradle也会在如下的路径创建 coverage.ec
文件。 /build/outputs/code-coverage/connected/
碎片化带来的问题
由于 Espresso 需要在真机或者虚拟机上运行,由于android碎片化严重,经常出现各种问题。现进行一个问题与解决方案的汇总。
小米的问题
问题现象:小米手机异常:com.android.ddmlib.InstallException: Failed to establish session
解决方案:在开发者选项中,关闭 MIUI 优化选项。 http://en.miui.com/thread-255506-1-1.html

与 Robolectric 框架结合,进行覆盖率测试
谷歌对 Robolectric
框架支持力度一般,所以发现 JaCoCo 工具在使用此框架时候,需要进行的配置较多。
配置
在 build.gradle 中将 testCoverageEnabled
设置为 true

android { 
          buildTypes {
                        debug { testCoverageEnabled = true }
                             }
              }

在 build.gradle 中增加如下配置

apply plugin: 'jacoco' 

本文由美高梅游戏网站发布于美高梅游戏网站,转载请注明出处:开源JavaScript代码覆盖率工具ScriptCover

关键词: