Nar*_*dra 23 testing android metrics code-coverage
我是EMMA的新手,我不知道如何在Android系统中使用它.任何人都可以提供一个使用Android的示例.非常感谢.
我只能让艾玛使用蚂蚁工作.如果你有一个ant build build,那么你可以运行:
ant emma debug install
ant emma debug install test
Run Code Online (Sandbox Code Playgroud)
第一个在项目目录中运行,第二个在测试目录中运行.有关详细信息,请参阅文档:http://developer.android.com/guide/developing/building/building-cmdline.html
如果您还没有ant build.xml文件,可以在此处查看如何从当前项目生成一个文件:http://developer.android.com/guide/developing/projects/projects-cmdline.html
可悲的是,这只适用于模拟器或有根设备.这是因为覆盖文件是在需要root的文件夹中生成的.我还需要修改android-sdk/tools/ant/build.xml文件,将我的root设备上的文件复制到其他地方,这样我就可以将其关闭.我修改了xml的emma块,如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
显然,SDK不支持EMMA.它仅支持作为源树的一部分的应用和测试.这看起来很奇怪,因为他们没有在开发指南中提到这一点,他们告诉你有关EMMA仪器选项的信息. http://developer.android.com/guide/developing/testing/testing_otheride.html#AMOptionsSyntax
你可以阅读这个人的回复(他似乎是开发团队的成员吗?我不知道) http://groups.google.com/group/android-developers/msg/a542afd318832371
如果您想下载并构建Android Source,那么让EMMA为您自己的应用程序工作听起来是可行的.然而,这听起来有点棘手,可能有点不稳定.有关详情,请参阅完整主题:http: //groups.google.com/group/android-developers/browse_thread/thread/43cf8a8ca5662f85/9b68eec3e7b625f3?lnk=gst&q=Emma#
| 归档时间: |
|
| 查看次数: |
24381 次 |
| 最近记录: |