提问者:小点点

Android blackbox测试,找不到测试目标类


我在测试一个android项目时遇到了麻烦。

我有一个没有源的调试apk。“开始activity”类是

com.restfriedchicken.android.MainActivity

我把它安装在

adb install -r app/build/outputs/apk/app-debug.apk

然后使用以下build.gradle和androidmanifest.xml创建一个新项目

null

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.restfriedchicken.android.test">

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="17" />

    <application android:allowBackup="false">
        <!-- linkage for the test runner -->
        <uses-library android:name="android.test.runner" />
    </application>

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.restfriedchicken.android" />

</manifest>

null

apply plugin: 'com.android.application'

android {
    compileSdkVersion 17
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 17
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.jayway.android.robotium:robotium-solo:5.3.1'
    compile 'com.jcraft:jsch:0.1.51'
}

但当我运行测试时,它报告找不到“com.restfriedchicken.android.mainActivity”:

Caused by: java.lang.ClassNotFoundException: 
Didn't find class "com.restfriedchicken.android.MainActivity" on path: 
DexPathList[
    [
        zip file "/system/framework/android.test.runner.jar", 
        zip file "/data/app/com.restfriedchicken.android.test.test-1.apk", 
        zip file "/data/app/com.restfriedchicken.android.test-1.apk"
    ],
    nativeLibraryDirectories=[
        /data/app-lib/com.restfriedchicken.android.test.test-1, 
        /data/app-lib/com.restfriedchicken.android.test-1, 
        /system/lib
    ]
]

看来仪器没有成功?


共1个答案

匿名用户

我刚开始工作。我将测试从src/androidtest移到src/main,并通过以下步骤运行测试:


./gradlew clean :app:assembleDebug
adb install -r app/build/outputs/apk/app-debug.apk
adb shell am instrument -w com.restfriedchicken.android.test/android.test.InstrumentationTestRunner

但是如果我使用android studio运行android测试,它就不工作了。