【问题标题】:Emma code coverage for Android manual testingAndroid 手动测试的 Emma 代码覆盖率
【发布时间】:2013-11-08 00:44:09
【问题描述】:

我尝试使用 Diego 下面帖子中的说明设置我的项目: http://dtmilano.blogspot.com/2011/11/obtaining-code-coverage-of-running.html

关于尝试使用 adb shell am instrument -e coverage true -w ... 启动应用程序

我得到以下错误:

E/Trace   ( 3989): error opening trace file: No such file or directory (2)
W/Trace   ( 3989): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 3989): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 3989): Unexpected value from nativeGetEnabledTags: 0
I/dalvikvm( 3989): ****Could not find method com.vladium.emma.rt.RT.r, referenced from method com.adobe.dps.coverage.EmmaInstrumentation.$VRi
W/dalvikvm( 3989): VFY: unable to resolve static method 27137: Lcom/vladium/emma/rt/RT;.r ([[ZLjava/lang/String;J)V
D/dalvikvm( 3989): VFY: replacing opcode 0x71 at 0x004b
W/dalvikvm( 3989): Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/adobe/dps/coverage/EmmaInstrumentation;
W/dalvikvm( 3989): Class init failed in newInstance call (Lcom/adobe/dps/coverage/EmmaInstrumentation;)
D/AndroidRuntime( 3989): Shutting down VM
W/dalvikvm( 3989): threadid=1: thread exiting with uncaught exception (group=0xb4cc7908)
E/AndroidRuntime( 3989): FATAL EXCEPTION: main
E/AndroidRuntime( 3989): java.lang.ExceptionInInitializerError

我在构建路径中包含了 emma.jar 并将其部署在应用程序中,但出现以下错误:

E/Trace   ( 4061): error opening trace file: No such file or directory (2)
W/Trace   ( 4061): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 4061): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 4061): Unexpected value from nativeGetEnabledTags: 0
W/dalvikvm( 4061): ****Exception Ljava/lang/Error; thrown while initializing Lcom/vladium/emma/rt/RT;
W/dalvikvm( 4061): Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lcom/package/coverage/EmmaInstrumentation;
W/dalvikvm( 4061): Class init failed in newInstance call (Lcom/package/coverage/EmmaInstrumentation;)
D/AndroidRuntime( 4061): Shutting down VM
W/dalvikvm( 4061): threadid=1: thread exiting with uncaught exception (group=0xb4cc7908)
E/AndroidRuntime( 4061): FATAL EXCEPTION: main
E/AndroidRuntime( 4061): java.lang.ExceptionInInitializerError
E/AndroidRuntime( 4061):    at java.lang.Class.newInstanceImpl(Native Method)

知道如何解决这个问题吗?

谢谢!

【问题讨论】:

  • 只是好奇,你解决过这个问题吗?
  • 不,我无法解决这个问题:(

标签: android code-coverage monkeyrunner emma


【解决方案1】:

看来你应该执行这个命令:

“蚂蚁仪器”

因为你有这样一个错误信息:****Could not find method com.vladium.emma.rt.RT.r

【讨论】:

  • “蚂蚁仪器”在这种情况下有什么作用?
  • 我也阅读了你提到的链接:dtmilano.blogspot.com/2011/11/…,并尝试了这个例子。在该教程中,您需要“运行仪器”来检测被测应用程序。因为在您的 logcat 信息中,它显示它无法从 emma 中找到方法,例如“Could not find method com.vladium.emma.rt.RT.r”
  • 顺便说一句,你有没有试过监控没有源代码的 apk 文件的代码覆盖率?我最近尝试这样做,但也遇到了问题,你可以看看这个帖子:stackoverflow.com/questions/27662988/…
【解决方案2】:

下面的链接帮助我解决了这个问题。我正在使用所以添加了以下依赖项:

在 app 文件夹中的 build.gradle 文件中添加了以下依赖项。

compile group: 'org.jruby', name: 'jruby', version: '1.4.1'

以及项目文件夹中存在的 build.gradle 文件中的以下依赖项。

maven {
            url "https://repo1.maven.org/maven2/"
        }

从以下链接中选择您的依赖项: http://snacktrace.com/artifacts/org.jruby/jruby/1.4.1/com.vladium.emma.rt.RT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    相关资源
    最近更新 更多