簡體   English   中英

何用Gradle配置Junit4 AndroidStudio

[英]Ho to configure Junit4 AndroidStudio with Gradle

我想在我的項目中測試一些clases。

我的項目是所有的android,但新的clases是純Java(我試圖為應用程序做一個小sdk)

但我不知道如何正確配置

Gradle文件:

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')
}

我想將測試用例放在下一個測試> SDK中

應用程序的結構:

+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

在Android插件中,sourceSets的配置與Java插件的配置不同,因此您應該閱讀http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-上的文檔。 Sourcesets和依賴性

為了測試你需要做這樣的事情:

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

一個捷徑就是這樣做:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM