2014-03-28 37 views
0

我想對我的項目中的某些類進行測試。Ho使用Gradle配置Junit4 AndroidStudio

我的項目是所有Android,但新clases是純Java(我試圖讓該應用程序有點SDK)

但我不知道如何正確配置

搖籃文件:

apply plugin: 'android' 

android { 
    compileSdkVersion "Google Inc.:Google APIs:19" 
    buildToolsVersion "19.0.1" 

    lintOptions{ 
     checkReleaseBuilds false 
    } 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 19 
     versionCode 28 
     versionName "4.0.5" 
    } 

    signingConfigs { 
     debug { 
         .......... 
     } 

     release { 
         .......... 
     } 

    } 

    buildTypes { 

     debug{ 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      debuggable true 
      buildConfigField "boolean", "LOG_ENABLED", "true" 
      signingConfig signingConfigs.debug 
     } 

     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      debuggable false 
      buildConfigField "boolean", "LOG_ENABLED", "false" 
      signingConfig signingConfigs.release 
     } 
    } 

    productFlavors{ 
     develFlavor{ 

     } 

     testFlavor{ 
      .......... 
     } 

     trainingFlavor{ 
      .......... 
     } 

     preFlavor{ 
      .......... 
     } 

     proFlavor{ 
      ......... 
     } 
    } 

} 

if (project.hasProperty('storePassword')) { 
    android.signingConfigs.release.storePassword = storePassword 
} 

if (project.hasProperty('keyAlias')) { 
    android.signingConfigs.release.keyAlias = keyAlias 
} 

if (project.hasProperty('keyPassword')) { 
    android.signingConfigs.release.keyPassword = keyPassword 
} 



repositories { 
    mavenCentral() 
} 

sourceSets { 
    test { 
     java.srcDir file(''src/main/java/es/tempos/gas/sdk/test'') 
    } 
} 

dependencies { 
    unitTestCompile 'junit:junit:4.11' 
    compile 'com.google.code.gson:gson:1.7.1' 
    compile 'com.android.support:appcompat-v7:+' 
    compile files('libs/libGoogleAnalyticsServices.jar') 
    compile files('libs/sbc_mapslib.jar') 
    compile files('libs/t21c2dm-lib-v1.0.jar') 
} 

我希望把測試用例的測試folfer> SDK

Estructure的應用程序:

+SmartPhoneGreatApp 
----.idea 
----app 
    -----build 
    -----libs 
    -----src 
     -----develFlavor 
     -----main 
       ----sdk 
     -----preFlavor 
     ----- ......... 
     ........ 
    -----test 
     ------sdk 

和測試類(暫時什麼都不做)

package es.tempos21.gas.sdk.test; 

import org.junit.Test; 


public class AuthenticateTest { 


    @Test 
    public void testAuthenticate() throws Exception { 

    } 
} 

而我得到的錯誤:

Gradle 'SmartPhoneGreatApp' project refresh failed: 
     Could not find property 'unitTest' on SourceSet container. 
     Gradle settings 

回答

2

在Android插件中,sourceSets的配置與Java插件不同,因此您應http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies

閱讀文檔測試你會想要做這樣的事情:

android { 
    sourceSets { 
     androidTest.setRoot('tests') 
    } 
} 

的快捷方式將做到這一點,而不是:

android.sourceSets.androidTest.setRoot('tests') 

注意你爲測試所在的位置提供一個新的頂級目錄(並且Java類將位於與其包路徑對應的下面的目錄結構中);在你的例子中,你試圖將它指向src/main/java/path/to /包內的包,這不會起作用。