gpt4 book ai didi

android - 如何在android中使用EMMA代码覆盖率

转载 作者:IT老高 更新时间:2023-10-28 22:22:33 26 4
gpt4 key购买 nike

我是 EMMA 的新手,我不知道如何将它用于 android 系统。任何人都可以提供一个在android中使用它的示例。非常感谢。

最佳答案

我只能使用 ant 让 emma 工作。如果您已经设置了 ant 构建,那么您可以运行:

ant emma debug install
ant emma debug install test

第一个在您的项目目录中运行,第二个在您的测试目录中运行。有关详细信息,请参阅文档:http://developer.android.com/guide/developing/building/building-cmdline.html

如果您还没有 ant build.xml 文件,您可以在此处查看如何从当前项目生成一个:http://developer.android.com/guide/developing/projects/projects-cmdline.html

可悲的是,这只适用于模拟器或 Root设备。这是因为覆盖文件是在需要 root 的文件夹中生成的。我还需要修改 android-sdk/tools/ant/build.xml 文件以将我的根设备上的文件复制到其他地方,这样我就可以将其关闭。我将 xml 的 emma block 修改为如下:

    <if condition="${emma.enabled}">
<then>
<echo>WARNING: Code Coverage is currently only supported on the emulator and rooted devices.</echo>
<run-tests-helper emma.enabled="true">
<extra-instrument-args>
<arg value="-e" />
<arg value="coverageFile" />
<arg value="${emma.dump.file}" />
</extra-instrument-args>
</run-tests-helper>
<echo>Copying coverage to readable directory...</echo>
<exec executable="${adb}" failonerror="true">
<arg line="${adb.device.arg}" />
<arg value="shell" />
<arg value="echo cp ${emma.dump.file} /sdcard/coverage.ec | su" />
</exec>
<echo>Downloading coverage file into project directory...</echo>
<exec executable="${adb}" failonerror="true">
<arg line="${adb.device.arg}" />
<arg value="pull" />
<arg value="/sdcard/coverage.ec" />
<arg value="coverage.ec" />
</exec>
<echo>Extracting coverage report...</echo>
<emma>
<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>
<echo>Cleaning up temporary files...</echo>
<delete file="coverage.ec" />
<delete file="coverage.em" />
<echo>Saving the report file in ${basedir}/coverage/coverage.html</echo>
</then>
<else>
<run-tests-helper />
</else>
</if>

关于android - 如何在android中使用EMMA代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com