3

Ich versuche eine Testklasse in Android Studio zu implementieren, um einen Test auf einem DBAdapter durchzuführen. Da ich den Test auf meinem Mobiltelefon ausführen muss, um die Datenbank zu verwenden, habe ich einen Instrumentation Unit Test erstellt (weil ich versucht habe, es nur mit einem Komponententest zu tun, aber ich muss die Datenbank verwenden und so, und diese werden nur lokal ausgeführt).Android Studio Junit testet Paket org.junit existiert nicht

Das Problem ist, dass, wenn ich versuche, die Testklasse zu laufen, als Laufvorrichtung meines Mobiltelefon, der Compiler die folgenden Fehler führt:

error: package org.junit does not exist 

Ich habe für eine solutione suchen, aber ich keine gefunden.

Dies ist mein Test-Klasse (nur das Skelett):

import org.junit.Test; 
import android.support.test.runner.AndroidJUnit4; 

import static org.junit.Assert.*; 


public class DbAdapterTest { 

    @Test 
    public void testCreateSeries() throws Exception { 

    } 
} 

Und dies ist das build.gradle Skript:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.w2w.whattowatch" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'),  'proguard-rules.pro' 
     } 
    } 
    testOptions { 
     unitTests.returnDefaultValues = true 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    testCompile 'junit:junit:4.12' 
    testCompile "org.mockito:mockito-core:1.9.5" 
} 

ich auch ein anderes Problem. Wie Sie sehen können, habe ich importiert auch dies:

import android.support.test.runner.AndroidJUnit4; 

Aber auch vor dem Laufen, heißt es von „Runner“, dass „das Symbol nicht lösen können“. Ich habe den TestInstrumentationRunner auf build.gradle hinzugefügt, funktioniert aber immer noch nicht.

+0

Sie Unit-Tests zu schreiben sind ('/ src/test') oder ui Tests (' src/androidTest')? –

+0

Ja, sie sind instrumentierte Komponententests, damit sie ausgeführt werden können, müssen sie in src/androidTest sein, entsprechend: http://developer.android.com/intl/es/training/testing/start/ index.html # run-instrumentierte-tests – gascon95

+0

Hier finden Sie: https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample. Verwenden Sie die Junit-Einheit für Komponententests. –

Antwort

4

OK, ich löse es so, das ist die Lösung, die für mich funktionierte.

ich diese abhängigkeit nicht, so dass ich füge sie den build.gradle Skript:

androidTestCompile 'com.android.support:support-annotations:23.1.1' 
androidTestCompile 'com.android.support.test:runner:0.4.1' 
androidTestCompile 'com.android.support.test:rules:0.4.1' 
+0

, das ist Arbeit für mich, sehr Dank – wangzhengyi

+0

musste ich auch das tun, was diese Antwort vorgeschlagen https://stackoverflow.com/a/42678218/1274764 – Hardy