【问题标题】:Android External Api Coverage is Not comingAndroid 外部 API 覆盖范围未到来
【发布时间】:2012-12-05 04:29:05
【问题描述】:

从过去 1 个月开始,我一直在尝试推断我的 Android 项目的代码覆盖率报告,其中包括外部罐子。(我在 ADT20 上运行)。每当我跑步时

ant emma 调试安装测试

它显示了我的 Android 项目的 100% 覆盖率,但覆盖率报告不包含我的 External Jars 的包和类。任何人都可以通过 emma ant build 或任何 Android 代码覆盖率工具帮助我获取 External Jars 中的包和类的覆盖率报告,这可以完成我的工作。

谢谢

【问题讨论】:

  • 我在代码覆盖率报告中成功获取了我的外部 jar 包,但我的 jar 包和类的命中率仍然为 0%。我做错了什么?

标签: android ant build code-coverage emma


【解决方案1】:

最新的 SDK 通过将 emma 放在 build 前面来使用 emma:

ant emma debug install
ant emma debug install test

第一个是从您的项目主管运行的,第二个是从测试目录运行的。这样做将生成完整的覆盖率报告。

有关更多信息,请参阅link

ADT r20 预览版通过提供对测试项目及其库项目的完整类路径的访问权限来解决此问题:

http://tools.android.com/download/adt-20-preview

这将为您提供有关库项目的代码覆盖率报告,但您还必须对 build.xml 的测试目标进行一些修改以附加源文件。

请参阅this Attach Android library Emma 报告 (ant, emma) 的项目源代码,了解有关如何暂时为您的库项目合并 emma 测试覆盖率的更多信息。

示例-build.xml:

<emma>
                <!-- Grantland: Attach Android library project sources to the emma report -->
                <report sourcepath="${tested.project.absolute.dir}/${source.dir};${tested.android.library.source.dir}"
                                  verbosity="${verbosity}">
                <!-- <report sourcepath="${tested.project.absolute.dir}/${source.dir}"
                                  verbosity="${verbosity}"> -->
                    <!-- TODO: report.dir or something like should be introduced if necessary -->
                    <infileset dir=".">
                        <include name="coverage.ec" />
                        <include name="coverage.em" />
                    </infileset>
                    <!-- TODO: reports in other, indicated by user formats -->
                    <html outfile="coverage.html" />
               </report>
            </emma>

ant.properties:

这可以是分号分隔的目录列表

tested.android.library.source.dir=../library/src;etc

【讨论】:

  • 我已经执行了上述步骤,但结果与之前相同。在 Coverage.html 报告中,仅包含我的应用程序的包,但主项目中的外部 jar 包不包含在报告中。如何获取主项目中添加的 jar 的覆盖率报告。
  • 我也尝试过上述更改,但我不清楚如何在 build.xml 和 ant.properties 文件中准确添加我的 jar 的路径。我的 jar 存在于主项目的 libs 文件夹中.
  • 以上改动要在主项目的build.xml或测试项目的build.xml中进行。
  • 执行上述步骤后,我的覆盖率报告显示了外部 jar 的包,但它没有被命中。其覆盖百分比为 0%。我错过了什么吗?
  • @RohitJindal:从测试项目的 build.properties 中删除 source.dir
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多