2014-06-13 2 views
11

Mam problem podczas próby uruchomienia niektórych testów JUnit Androida w ramach IntelliJ Idea."Nie znaleziono klasy" podczas uruchamiania testów JUnit z IntelliJ IDEA (Android)

Mój projekt to projekt biblioteki Android korzystający z programu Gradle. Gdy uruchomię moich testów, IntelliJ skarży się z powodu następującego błędu:

Class not found: "com.domain.app.ClassTest" 

Ale ClassTest jest obecny wewnątrz opakowania testowego.

Oto mój build.gradle:

apply plugin: 'android-library' 

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.10.+' 
    } 
} 

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

    compile 'com.android.support:support-v4:19.1.+' 

    compile('junit:junit:4.11') { 
     exclude module: 'hamcrest-core' 
    } 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "19.0.3" 

    defaultConfig { 
     versionName "1.0" 
     versionCode 1 

     targetSdkVersion 18 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src/main/java'] 
      res.srcDirs = ['res'] 
     } 

     androidTest { 
      java.srcDirs = ['src/test/java'] 
     } 
    } 

    lintOptions { 
     abortOnError false 
    } 
} 

Moja struktura projektu:

src 
|_ main 
    |_ java 
    |_ com.domain.app 
|_ test 
    |_ java 
     |_ com.domain.app 

Używam IntelliJ IDEA 13.1.1.

Dzięki.

+0

Prawdopodobny duplikat [Uruchomione testy na Intellij: Class not found] (http://stackoverflow.com/questions/22105264/running-tests-on-intellij-class-not-found) –

Odpowiedz

2

Przejdź do Project Structure -> Modules -> your_module -> Paths.

Wartość "Output path" należy wpisać, ale "Test output path" nie będzie. Skopiuj tekst z "Output path", wklej do "Wyjściowej ścieżki testowej", ale zmień ostateczny "build/intermediates/classes/debug" na "build/test-classes". Dzieje się tak dlatego, że wtyczka testu gradle android obecnie zrzuca wszystkie skompilowane wyjście testowe (dla wszystkich wariantów) do tego samego katalogu. Oznacza to, że aktualnie warianty nie są w pełni obsługiwane.

Source.