首页 > 解决方案 > Android 测试异常:class not found Error 解析失败:Lorg/powermock/reflect/Whitebox;

问题描述

  1. 跟踪信息

com.sprd.linkturbo.tests.testWifiQosParams#TC_SmartLink_WifiQosParamsSetAndGetLostPackets_007: FAILURE (1ms) stack= java.lang.NoClassDefFoundError: Failed resolution of: Lorg/powermock/reflect/Whitebox; at com.sprd.linkturbo.tests.testWifiQosParams.TC_SmartLink_WifiQosParamsSetAndGetLostPackets_007(testWifiQosParams.java:37) at java.lang.reflect.Method.invoke(Native Method) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:52) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:148) at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:142) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.lang.Thread.run(Thread.java:923) Caused by: java.lang.ClassNotFoundException: org.powermock.reflect.Whitebox

  1. AndroidManifest.xml

     <!-- We add an application tag here just so that we can indicate that
          this package needs to link against the android.test library,
          which is needed when building test cases. -->
     <application>
          <uses-library android:name="android.test.runner" />
     </application>
    
     <!--This declares that this app uses the instrumentation test runner targeting
          the package of com.android.deskclock.  To run the tests use the command:
          "adb shell am instrument -w com.android.deskclock.tests/androidx.test.runner.AndroidJUnitRunner"
     -->
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
                      android:targetPackage="com.sprd.linkturbo"
                      android:label="Tests for LinkTurbo."/>
    
  2. 安卓.bp

    android_test {
         name: "SmartLinkTests",
    
         srcs: ["src/**/*.java"] + ["src/**/*.iml"],
    
         libs: [
             "android.test.base",
             "android.test.mock",
             "android.test.runner",
             "telephony-common",
             "radio_interactor_common",
             "com.unisoc.sdk.common",
             "platform-robolectric-3.6.2-prebuilt",
             "powermock-libs",
             "platform-byte-buddy-1.8.10-prebuilt",
             "platform-byte-buddy-agent-1.8.10-prebuilt",
             "platform-objenesis-2.6-prebuilt",
             //"LinkTurbo",
             //"uniframework"
          ],
          //sdk_version: "current",
    
          certificate: "platform",
    
          platform_apis: true,
    
          manifest: "AndroidManifest.xml",
    
          static_libs: [
              "mockito-target-minus-junit4",
              "platform-test-annotations",
              "truth-prebuilt",
              "frameworks-base-testutils",
          ],
    
    
          jacoco: {
             include_filter: ["com.sprd.linkturbo.*"],
          },
    
    
          instrumentation_for: "LinkTurbo",
     }
    

标签: javaandroidandroid-testing

解决方案


推荐阅读