2013-08-20 126 views
7

我將我的Android項目遷移到gradle構建系統,我無法從我的Integration Test Android項目導入我的Android項目。使用gradle構建系統創建測試Android apk

我使用多個項目配置與幾個android庫,它的工作很好,但我有一個問題,建立我的測試項目與多項目設置。由於外部原因,我需要繼續使用這種結構。

MyProject/ 
| settings.gradle 
+ MyApp/ 
    | build.gradle 
    | src 
    | res 
    | libs 
+ Instrumentation-Tests/ 
    | build.gradle 
    | src 
    | res 
    | libs 

我目前的配置文件看起來像:

settings.gradle:

include ':MyApp', 'Instrumentation-Tests' 

MyAppp /的build.gradle:

apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile files('.....jar') 
    compile project('....') 
    compile 'com.android.support:support-v4:13.0.+' 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 16 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

    } 
} 

最後我Instrumentation-Tests/build.gradle

apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile project(':MyApp') 
    compile files('.....jar') 
    compile 'com.android.support:support-v4:13.0.+' 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 16 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 
    } 
} 

當我運行gradle compileDebug項目MyApp正確編譯(和它的所有模塊),而是因爲它無法找到MyApp定義了Android類Instrumentation-Tests編譯失敗。

compile(project(':MyApp')) { transitive = true } 

聲明的依賴時:

我讀過的文檔和很多帖子,但我不能使它工作,我也嘗試使用。

有沒有人有同樣的問題? 我想將MyApp項目依賴項的輸出包含到Instrumentation-Tests編譯的類路徑中,但我不知道是否可以使用android gradle插件。

+0

你讀過這樣的東西:http://stackoverflow.com/questions/16586409/how-can-i-create-tests-in-android-studio和這個:http://tools.android。 COM /科技的文檔/新構建系統/用戶指南#TOC-測試?我想知道你是否遵循了這些說明,但是如果它能適用於你當前的設置,就改變了源代碼集的位置。您可能需要指定與項目根目錄相關的測試源目錄。 – jDutton

+0

我最終將所有移動到gradle結構,我也將我的所有儀器測試(單位和功能)移動到instrumentationTest文件夾內,並且一切正常! – David

回答

1

這不會起作用(截止現在),因爲您只能將庫項目指定爲依賴關係。因此,對於compile project(':MyApp')MyApp的的情況下

在它的的build.gradle應該是一個Android庫項目與apply plugin: 'android-library'。這當然沒有意義。

要有一個單獨的測試項目,你需要別的東西(我正在研究自己)。

編輯:放棄與Gradle測試,使用Ant。

+0

我最終將所有移動到gradle結構,我也將我的所有儀器測試(單位和功能)移動到instrumentationTest文件夾內,並且一切正常! – David