是否可以使用 Android build.xml 简单地编译 Emma 检测的 APK,而不运行任何测试

2023-11-27

我知道

ant coverage

然而,它做了一些事情,它使用 emma Instrumentation 进行编译,安装并运行测试 apk。我不希望它通过 ant 覆盖运行测试套件,因为我需要使用一些额外的钩子来运行它,并且我不想运行大型测试套件两次。到目前为止我已经尝试过这个

Target_Project/build.properties

emma.enabled=true

测试项目/build.properties

emma.enabled=true

然后在 shell 中执行此操作。

Target_Project$ ant debug
Target_Project$ adb install bin/Target_Project-debug.apk
Target_Project$ cd ../Test_Project/
Test_Project$ ant debug
Test_Project$ adb install bin/Test_Project-debug.apk
Test_Project$ adb shell am instrument -e coverage true -e coverageFile /sdcard/myFile.ec -w com.my_app.testproject/android.test.InstrumentationTestRunner

响应是

Error: Failed to generate emma coverage. Is emma jar on classpath?

那么有没有什么技巧可以让 apk 使用 emma 库构建呢?我尝试调用在 sdk xml 模板中创建的目标,但它们是“私有的”。我有什么遗漏的吗?


对于任何有兴趣的人来说都很好。 SDK 文档完全被破坏(我知道这很令人惊讶)。基本上你必须这样做,

获取 android create-project 生成的基础 build.xml 并更改标签

<setup/>

并将其更改为

<setup import="false"/>

现在文档将告诉您从 SDK/platform-/templates/android_rules.xml 复制并将其放入您的 build.xml ...这是错误的而且非常缺乏维护。该规则文件不被任何东西使用。使用的是SDK/tools/ant/里面的规则。使用最新的 _r 和 获取适合您的项目类型的适当文件(库项目的库、测试项目的测试或常规项目的普通文件)
将其根节点的内容复制到您的 build.xml 中。将其插入到设置标签之后。如果不使用ant目录下的文件,将无法通过ant脚本编译项目库。我很高兴他们保留了有关如何执行此操作的文档。

现在您可以在构建文件中更改您喜欢的任何内容以满足您的构建需求。在这种情况下,我只是让 install-helper 调用我的 adb 包装器,它返回解释的结果代码。

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

是否可以使用 Android build.xml 简单地编译 Emma 检测的 APK,而不运行任何测试 的相关文章

随机推荐