安卓测试代码覆盖率,Eclipse

2022-09-03 02:24:44

有没有办法从Eclipse运行Android的单元测试,以一种能够检测代码并测量测试代码覆盖率的方式?

我正在寻找一种简单的方法来找出应用程序的哪些部分尚未经过测试,修复测试用例并查看是否有帮助。


答案 1

免责声明:我是阿特拉斯主义者

Atlassian Clover工具还支持Android - 它测量应用程序代码和单元测试的覆盖率。虽然在alpha阶段,但它工作得很好 - 它适用于Eclipse版本3.6.2及更高版本。

如果您想找到需要改进的应用程序区域,那么以下Clover功能将非常适合此任务:

  • 三叶草仪表板
  • 覆盖云报告
  • 覆盖范围树图报告
  • 覆盖范围资源管理器

哦,三叶草HTML报告看起来太棒了!

检查这个:https://confluence.atlassian.com/display/CLOVER/Clover-for-Android


答案 2

我已经使用EMMA(android已经支持它)用于代码覆盖率(以及用于测试报告的android-junit-report),这里有一个摘要:

  • 创建安卓项目(或库)

android.bat update project -p project -n my_project -t android-16

光盘项目

蚂蚁艾玛干净调试

  • 创建测试项目(链接到以前的库)

android.bat更新项目 --library ..\project -p project_Test -n project_Test -t

  • 如果主项目不是库

android.bat 更新项目 -m ..\project -p project_Test -n project_Test -t

蚂蚁emma干净调试安装我didn不使用“测试”,因为我想运行自己的仪器

adb shell am instrument -e coverage true -e coverageFile sdcard/coverage.ec -w com..myproject.test/com.zutubi.android.junitreport.JUnitReportTestRunner

  • 从设备(模拟器)拉取文件

adb pull sdcard/junit-report.xml

adb pull sdcard/coverage.ec

  • 生成 XML 报告(也可以生成 html 报告)

java -cp emma.jar emma report -r xml -in bin/coverage.em,coverage.ec

  • 生成 HTML 报告(也可以生成 html 报告)

java -cp emma.jar emma report -r html -in bin/coverage.em,coverage.ec

  • 使用后期构建(Jenkins):

    • JUnit report XML
    • 艾玛覆盖率报告(提供覆盖率.xml作为输入)

不需要将 emma.jar放入 libs 中

从我的博客中查看


推荐