首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android、emma、ant和ant相关的错误

Android、emma、ant和ant相关的错误
EN

Stack Overflow用户
提问于 2011-06-09 09:04:44
回答 2查看 1.9K关注 0票数 0

我正在使用其他开发人员创建的一些Android代码,他们要求我在其上运行代码覆盖率度量。它是Android 2.3.3,他们使用ant作为构建文件。我在Ubuntu上运行,而其他开发人员在windows/macs上运行。

如果不考虑SDK/tools/lib/ant/main_rules.xml文件,最后会出现emma的sourceforge页面中描述的错误:找不到类com.vladium.emma.emmajavaTask所需的类: org/apache/tools/ant/taskdefs/Java“

这显然是由于lib目录中同时包含emma_ant.jar和emma.jar造成的。不用说,这里没有提到emma_device.jar。

如果我注释掉project emma.jar这行代码,我就可以构建这个项目。但是,当需要创建一个测试项目来获取检测代码时,运行"ant coverage“将返回

代码语言:javascript
复制
Problem: failed to create task or type emma
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

这让我卡住了。它似乎在寻找emma_properties.config文件,但这似乎只出现在emma.jar中,它被注释掉了……

我觉得我像是在兜圈子,什么也没做。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-10 01:09:53

把这个问题的答案看作是“在不了解其含义的情况下试图做太多事情”的情况。

EMMA的sourceforge页面建议将emma.jar作为JRE的扩展安装。如果这样做,将会导致与SDK ant工具的冲突。最安全的做法是忽略EMMA sourceforge单独的构建,简单地使用SDK提供的内容。有关如何使其正常工作的说明,请参阅http://developer.android.com的测试部分。

票数 0
EN

Stack Overflow用户

发布于 2011-06-09 13:42:32

我不认为有一种简单的方法来使用ant来获得EMMA的覆盖率,但是使用make并不是那么复杂。首先,您需要设置

代码语言:javascript
复制
EMMA_INSTRUMENT=true

在您的环境中创建仪表化构建,然后使用make构建您的应用程序和测试,然后使用

代码语言:javascript
复制
-e coverage 'true'

我的下一本书,Android Application Testing Guide,包括一个使用这种技术获得覆盖报告的分步示例:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6287032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档