通过更改 build.xml 和 ant.properties 生成 Android 代码覆盖率

2024-04-17

我一直在尝试为我的 android 测试项目生成 android 代码覆盖率,该项目测试包含外部 jar 的 android 项目。当我运行命令时

ant emma install debug test

它仅显示了 android 项目的覆盖范围,但不包括外部 jar 的包和功能。 根据我的研究,我发现应该做一些改变ant.properties文件和emma report tag in build.xml.

任何建议都是非常受欢迎的。

[Edit]

在进一步的研究中,我浏览了一个博客,上面写着输入变量

tested.android.library.source.dir="path to external jars" in ant.properties

并且应在报告源路径中添加相同的变量,如下所示

<emma>
                    <report sourcepath="${tested.project.source.absolute.dir}:${tested.project.lib.source.path.value}:${tested.android.library.source.dir}" verbosity="${verbosity}">
                        <!-- TODO: report.dir or something like should be introduced if necessary -->
                        <infileset file="${out.absolute.dir}/coverage.ec" />
                        <infileset file="${tested.project.out.absolute.dir}/coverage.em" />
                        <!-- TODO: reports in other, indicated by user formats -->
                        <html outfile="${out.absolute.dir}/coverage.html" />
                   </report>
  </emma>

但覆盖范围仍然没有显示外部 jar 的功能和包。

我想知道我的 jar 不在 android 测试项目中,而是在测试的 android 项目中。那么如何为这些外部 jar 提供路径ant.properties的测试项目。


我也从很长一段时间以来就在做同样的工作。 参考图书馆项目的代码覆盖率报告 http://code.google.com/p/android/issues/detail?id=32421

ADT-r20 中支持外部 jar 覆盖。 我只能指出我正在努力的方向。 我正在修改 ant 内的 build.xml :

 <!-- This is macro that enable passing variable list of external jar files to ApkBuilder
     Example of use:
     <package-helper>
         <extra-jars>
            <jarfolder path="my_jars" />
            <jarfile path="foo/bar.jar" />
            <jarfolder path="your_jars" />
         </extra-jars>
     </package-helper> -->
<macrodef name="package-helper">
    <element name="extra-jars" optional="yes" />
    <sequential>
        <apkbuilder
                outfolder="${out.absolute.dir}"
                resourcefile="${resource.package.file.name}"
                apkfilepath="${out.packaged.file}"
                debugpackaging="${build.is.packaging.debug}"
                debugsigning="${build.is.signing.debug}"
                verbose="${verbose}"
                hascode="${manifest.hasCode}"
                previousBuildType="${build.last.is.packaging.debug}/${build.last.is.signing.debug}"
                buildType="${build.is.packaging.debug}/${build.is.signing.debug}">
            <dex path="${intermediate.dex.file}"/>
            <sourcefolder path="${source.absolute.dir}"/>
            <jarfile refid="project.all.jars.path" />
            <nativefolder path="${native.libs.absolute.dir}" />
            <nativefolder refid="project.library.native.folder.path" />
            <extra-jars/>
        </apkbuilder>
    </sequential>
</macrodef>

到目前为止我还没有运气。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过更改 build.xml 和 ant.properties 生成 Android 代码覆盖率 的相关文章

随机推荐