Тест черного ящика Android, не удается найти целевой класс теста

У меня проблемы с тестированием проекта Android.

У меня есть отладочный apk без исходного кода. Стартовый класс активности

com.restfriedchicken.android.MainActivity

И я установил его, используя

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

Затем я создаю новый проект со следующими build.gradle и AndroidManifest.xml

<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>

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
    ]
]

Вроде приборка не удалась?


person Yugang Zhou    schedule 26.03.2015    source источник


Ответы (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 с помощью студии Android, он не работает.

person Yugang Zhou    schedule 26.03.2015