Android, Gradle. Comment créer une application et exécuter des tests à partir d'une application de test

J'ai projet android et android projet de test à l'intérieur de celui-ci, situé sous le dossier des tests. La Structure de ces projet est eclipse comme

+-src
| - res
| - libs
| tests
|.....

- Je utiliser gradle. Tout ce que je veux est de construire application, exécuter des tests unitaires et d'obtenir des rapports d'eux. Mais je ne comprends pas comment le faire correctement. Je me suis créé construire.gradle fichier dans le dossier racine du

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"
    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 18
        testPackageName "ua.cooperok.stringcalc.tests"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
        unitTest {
            java.srcDir file('tests/src')
            resources.srcDir file('tests/res')
        }
    }

    configurations {
        unitTestCompile.extendsFrom runtime
        unitTestRuntime.extendsFrom unitTestCompile
    }

    dependencies {
        unitTestCompile files("$project.buildDir/classes/release")
    }

    task unitTest(type:Test){
        description = "Run unit tests..."
        testClassesDir = android.sourceSets.unitTest.output.classesDir
        classpath = android.sourceSets.unitTest.runtimeClasspath
    }

    build.dependsOn unitTest

}

Mais quand je lance gradle construire je suis d'erreur
Ne pouvait pas trouver la propriété de "production" sur la source du réglage de l'unité de test.

Aussi, ce que je comprends, pour obtenir des rapports, j'ai besoin d'appliquer le plugin "android", mais quand je fais cela, je suis d'erreur
Ne peut pas ajouter l'extension avec le nom "android", comme il y a une extension déjà enregistré avec ce nom.

Dois-je faire comme cela, ou dois-je créer de nouveaux gradle.construire des fichier dans mon test de l'application du projet?

Mise à JOUR

J'ai corrigé l'erreur de sortie, et faites gradle construction réussie, mais je ne comprends pas à quoi surfer sur. J'ai volontairement omis de mon test, mais gradle construire est toujours un succès.
Ce que j'ai fait:
1. J'ai déménagé tâche unitTest de section android à la racine, après cela, mon projet de test a commencé à compiler, mais il y a une erreur 'packackage android.test non trouvé"
2. Pour corriger cette erreur, j'ai ajouté au classpath path pour android sources, donc après que gradle construire a été un succès, mais vraiment je ne comprends pas pourquoi il est toujours performant, même si le test échoue

Et encore je ne comprends pas comment obtenir les rapports de test

C'est mon nouveau build.gradle fichier

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6+'
    }
}

apply plugin: 'android'

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"
    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 18
        testPackageName "ua.cooperok.stringcalc.tests"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
    }
    sourceSets {
        main {
            manifest.srcFile file('AndroidManifest.xml')
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
    }
}

sourceSets {
    unitTest {
            java.srcDirs = ['tests/src']
            resources.srcDirs = ['tests/src']
    }
}

configurations {
    unitTestCompile.extendsFrom runtime
    unitTestRuntime.extendsFrom unitTestCompile
}

dependencies {
    unitTestCompile files("$project.buildDir/classes/release")
    unitTestCompile 'junit:junit:4.11'
    compile fileTree(dir: 'libs', include: '*.jar')
}

task unitTest(type:Test, dependsOn: assemble) {
    description = "run unit tests"
    testClassesDir = sourceSets.unitTest.output.classesDir
    classpath = files("$System.env.ANDROID_HOME/sources/android-18")
    //actualy I didn't  get any report
    getReports().getJunitXml().setOutputPerTestCase(true)
}

build.dependsOn unitTest

source d'informationauteur cooperok