2016-05-07 2 views
2

ich meine Klasse wie hier kommentiertenAndroidJUnit4 Test nicht gefunden

@RunWith(AndroidJUnit4.class) 
public class WorkdayProviderTest 

Futhermore, kommentierte mein Testmethode auch wie diese

@Test 
public void insert_dataInsertsCorrectly() 

Schließlich konfiguriert meine build.gradle DefaultConfig und Abhängigkeiten wie diese

defaultConfig { 
    applicationId 'com.jueggs.workinghours' 
    minSdkVersion 16 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 

androidTestCompile "junit:junit:4.12" 
androidTestCompile "com.android.support:support-annotations:23.3.0" 
androidTestCompile "com.android.support.test:runner:0.4.1" 
androidTestCompile "com.android.support.test:rules:0.4.1" 
androidTestCompile "com.android.support.test.espresso:espresso-core:2.2.1" 
androidTestCompile "com.android.support.test.espresso:espresso-contrib:2.2.1" 
androidTestCompile "org.hamcrest:hamcrest-library:1.3" 

und den Testlauf wie folgt konfigurieren

enter image description here

und es ist mir zu sagen,

No tests were found 

Test running failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException' 

Wie dieses Problem beheben?

Antwort

1

Möglicherweise haben Sie in Ihren Gradle-Abhängigkeiten nichts. Haben Sie com.android.support.test:runner (optional com.android.support.test:rules) richtig deklariert?

bitte einen Blick auf meine build.gradle Datei nehmen:

apply plugin: 'com.android.application' 
apply plugin: 'android-apt' 

buildscript { 
    repositories { 
     jcenter() 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:1.5.0' 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.6' 
    } 
} 

apt { 
    arguments { 
     androidManifestFile variant.outputs[0].processResources.manifestFile 
     resourcePackageName "com.piotr.testexample" 
    } 
} 

repositories { 
    mavenCentral() 
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
} 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    useLibrary 'org.apache.http.legacy' 

    //For building with Travis CI 
    lintOptions { 
     abortOnError false 
    } 

    packagingOptions { 
     exclude 'META-INF/services/javax.annotation.processing.Processor' 
    } 

    defaultConfig { 
     applicationId "com.piotr.testexample" 
     minSdkVersion 16 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 

     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
dependencies { 
    ext.JUNIT_VERSION = '4.12' 
    ext.AA_VERSION = '4.0.0' 
    ext.SUPPORT_VERSION = '23.3.0' 
    ext.ESPRESSO_VERSION = '2.2.2' 

    apt "org.androidannotations:androidannotations:$AA_VERSION" 
    compile "org.androidannotations:androidannotations-api:$AA_VERSION" 

    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile "junit:junit:$JUNIT_VERSION" 
    testCompile("org.robolectric:robolectric:3.0") { 
     exclude module: 'classworlds' 
     exclude module: 'commons-logging' 
     exclude module: 'httpclient' 
     exclude module: 'maven-artifact' 
     exclude module: 'maven-artifact-manager' 
     exclude module: 'maven-error-diagnostics' 
     exclude module: 'maven-model' 
     exclude module: 'maven-project' 
     exclude module: 'maven-settings' 
     exclude module: 'plexus-container-default' 
     exclude module: 'plexus-interpolation' 
     exclude module: 'plexus-utils' 
     exclude module: 'wagon-file' 
     exclude module: 'wagon-http-lightweight' 
     exclude module: 'wagon-provider-api' 
    } 

    compile "com.android.support:appcompat-v7:$SUPPORT_VERSION" 
    compile "com.android.support:design:$SUPPORT_VERSION" 
    compile "com.android.support:cardview-v7:$SUPPORT_VERSION" 
    compile "com.android.support:recyclerview-v7:$SUPPORT_VERSION" 

    compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT' 

    compile 'com.squareup.retrofit:retrofit:1.9.0' 
    compile 'com.google.code.gson:gson:2.4' 
    compile 'com.squareup.picasso:picasso:2.5.2' 

    androidTestCompile "com.android.support:support-annotations:$SUPPORT_VERSION" 
    androidTestCompile "com.android.support.test.espresso:espresso-core:$ESPRESSO_VERSION" 
    androidTestCompile 'com.android.support.test:runner:0.5' 
    androidTestCompile "com.android.support.test.espresso:espresso-intents:$ESPRESSO_VERSION" 
    /** 
    * AccessibilityChecks 
    * CountingIdlingResource 
    * DrawerActions 
    * DrawerMatchers 
    * PickerActions (Time and Date picker) 
    * RecyclerViewActions 
    */ 
    androidTestCompile("com.android.support.test.espresso:espresso-contrib:$ESPRESSO_VERSION") { 
     exclude group: 'com.android.support', module: 'appcompat' 
     exclude group: 'com.android.support', module: 'support-v4' 
     exclude group: 'com.android.support', module: 'support-v7' 
     exclude group: 'com.android.support', module: 'design' 
     exclude module: 'support-annotations' 
     exclude module: 'recyclerview-v7' 
    } 

    compile "junit:junit:${JUNIT_VERSION}" 
} 

EDIT: Das Problem mit der Anmerkung, bitte eine dieser Lösungen tun:

  • @RunWith(AndroidJUnit4.class)
  • Änderung löschen @RunWith(AndroidJUnit4.class) mit @RunWith(JUnit4.class)

Es scheint, dass es keine AndroidJUnit4.class Testpakete mehr gibt.

+0

ja ich habe diese Abhängigkeiten, siehe Update – Lemao1981

+1

löschen '@RunWith (AndroidJUnit4.class)' und Test ausführen. Sie können '@RunWith (AndroidJUnit4.class)' auch mit '@RunWith (JUnit4.class)' ändern und es sollte laufen. – piotrek1543

+0

hat das Problem nicht gelöst, in beiden Fällen kann kein Test gefunden werden. in der Version 0.4.1 gibt es die Klasse AndroidJUnit4 existiert – Lemao1981

-1

Versuchen Sie, Klassen und Methoden in diesem fashon Namensgebung:

  • Test_MyClass
  • test_myMethod

Ich hoffe, das hilft.

+0

nein, hat nicht geholfen – Lemao1981

+0

Es tut mir leid. Ich hatte und löste dieses Problem auf diese Weise mit Espresso Instrumentation Tests. Anyway in Unit Test verwende ich Robolectric. Wenn Sie sich festgefahren fühlen, versuchen Sie es! –

+0

Haben Sie im Android-Studio in Build-Varianten von instrumentierten Tests zu Komponententests gewechselt? –

0

ok, das Problem hatte nichts mit meiner Testkonfiguration zu tun, aber eine andere Klasse fehlte, die ich kurz zuvor gelöscht hatte. Die App selbst hat noch nicht einmal angefangen. schade, dass der Klassenname nirgends erwähnt wurde

Verwandte Themen