【问题标题】:Ho to configure Junit4 AndroidStudio with Gradle如何使用 Gradle 配置 Junit 4 Android Studio
【发布时间】:2014-03-28 09:51:18
【问题描述】:

我想测试我项目中的一些类。

我的项目都是android,但是新的类是纯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')
}

我想把测试用例放到folfer Test>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

【问题讨论】:

    标签: unit-testing android-studio junit4 build.gradle


    【解决方案1】:

    在 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/package 中的一个包,但这是行不通的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 2013-06-07
      • 2013-07-24
      • 2015-01-02
      • 2021-10-22
      • 2014-07-18
      相关资源
      最近更新 更多