我一直在尝试为我的 android 测试项目生成 android 代码覆盖率,该项目测试包含外部 jar 的 android 项目。当我运行命令时
ant emma 安装调试测试
它仅显示了 android 项目的覆盖范围,但不包括外部 jar 的包和功能。
根据我的研究,我发现应该在 ant.properties
文件和 build.xml
中的 emma report tag
中进行一些更改。
非常欢迎任何建议。
[编辑]
在进一步的研究中,我浏览了一个博客,上面写着输入变量
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 项目中。那么如何在测试项目的 ant.properties
中为这些外部 jar 提供路径。
最佳答案
我也一直在做同样的事情。 引用code coverage reports for library projects
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>
我还没有运气。
关于android - 通过更改 build.xml 和 ant.properties 生成 Android 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466482/