2014-06-13 125 views
11

我在嘗試在IntelliJ Idea中運行一些Android JUnit測試時遇到問題。當從IntelliJ IDEA(Android)運行JUnit測試時發現「Class not found」

我的項目是一個使用Gradle的Android庫項目。當我運行我的測試中,抱怨的IntelliJ與以下錯誤:

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

ClassTest存在的測試包內。

這裏是我的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 
    } 
} 

我的項目結構:

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

我使用的IntelliJ IDEA 13.1.1。

謝謝。

+0

[在Intellij上運行測試:類未找到]可能的重複(http://stackoverflow.com/questions/22105264/running-tests-on-intellij-class-not-found) –

回答

2

轉到Project Structure -> Modules -> your_module -> Paths

應該填入'Output path'的值,但'Test output path'不會被填入。複製'Output path'中的文本,粘貼到'測試輸出路徑'中,但將最後的'build/intermediates/classes/debug'更改爲'build/test-classes'。這是因爲gradle android測試插件目前將所有已編譯的測試輸出(針對所有變體)轉儲到同一個目錄中。這意味着目前的變體不完全支持。

Source