'./gradlew -Dtest.single=SimpleTest test' ausgeführt, werden alle tests, die ich habe
Mein Projekt ist über die normale Android-Projekt erstellt auf Android Studio.
Ich googelte viel, um einen einzelnen test(tests in SimpleTest, 1 test in diesem Fall), alle sagen, dass ich tun soll, wie
./gradlew -Dtest.single=SimpleTest test
in meinem root-Ordner.
oder ich habe in meinem innere-Projekt-Ordner
../gradlew -Dtest.single=SimpleTest test
Ich habe versucht, so viele Möglichkeiten, wie diese, aber es laufen immer alle tests, die ich habe.(11 Prüfungen in allen Klassen)
Ist es ein problem auf meinem build.gradle, oder gibt es da etwas, was ich vermisst?
Hier ist mein bauen.gradle Datei.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
classpath 'com.github.jcandksolutions.gradle:android-unit-test:1.0.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
//I changed this for this question
packageName "com.XXX.XXXX"
}
sourceSets {
instrumentTest.setRoot('src/test')
}
}
apply plugin: 'android-unit-test'
dependencies {
repositories {
mavenCentral()
}
compile 'com.android.support:support-v4:18.0.+'
compile 'com.android.support:appcompat-v7:+'
compile 'com.google.code.gson:gson:2.2.4'
compile group:'com.squareup.picasso', name:'picasso', version:'2.1.1'
compile group:'com.squareup.okhttp', name:'okhttp', version:'1.2.1'
compile group:'com.squareup', name:'otto', version:'1.3.4'
compile group:'com.jakewharton', name:'butterknife', version:'3.0.0'
compile group:'com.github.kevinsawicki', name:'http-request', version:'5.4.1'
compile fileTree(dir: 'libs', include: '*.jar')
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.2'
testCompile 'com.squareup:fest-android:1.0.+'
instrumentTestCompile 'junit:junit:4.10'
instrumentTestCompile 'org.robolectric:robolectric:2.2'
instrumentTestCompile 'com.squareup:fest-android:1.0.+'
}
tasks.withType(Compile) {
options.encoding = "UTF-8"
}
tasks.withType(Test) {
testLogging {
events 'started', 'passed'
}
}
-Dtest.single
ist der richtige Weg, um einen einzelnen test der Klasse oder Methode, wenn mit derjava
plugin. Dinge könnten anders sein für dieandroid-unit-test
plugin.- Danke für den Kommentar. Bedeutet es, dass ich sollte finden Sie eine spezifische Lösung für android-unit-test?
- Sie gab mir eine Ahnung 🙂 ich fand heraus
android-unit-test
plugin noch nicht unterstützt-Dtest.single
option, durch diese Frage dem Entwickler dieses plugins aufGithub
. Er machte einen neuen patch für diese und hochgeladen neue version von Maven, So endlich jetzt kann ich einen einzelnen test Klasse 🙂 Wenn Sie meine Frage beantworten, über diese, ich werde nehmen 🙂 - Dieser arbeitete für mich: stackoverflow.com/questions/19565857/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die notation
bedeutet, dass in der Aufgabe mit dem Namen 'test' nur ausführen, SimpleTest. Wenn Ihr test-task-name unterscheidet, ändern Sie die Eigenschaft system. E. g. Ihre test-Aufgabe mit dem Namen 'instrumentationTest' die Eigenschaft muss
cheers,
René
./gradlew instrumentTest
sagt Es gibt es keine Aufgabe wie diese. Das ist, warum ich einfach laufen und test für SimpleTest.../gradlew -DinstrumentTest.single=SimpleTest test
es führt alle tests, die ich habe.-Dtest.single=...
Teil nach die Aufgabe macht einen Unterschied:../gradlew test -Dtest.single=SimpleTest
? Es sollte nicht, aber du wirst nie wissen../gradlew test -Dtest.single=SimpleTest
und../gradlew test -DinstrumentTest=SimpleTest
aber läuft immer noch alle tests.dies ist was für mich gearbeitet:
./gradlew testDebug --tests *TaskCommandSpec
Verwenden
testDebug
odertestRelease
statt nurtest
.Wenn Sie build-Varianten verwenden Sie dann e.g
testProRelease
docs: https://docs.gradle.org/current/userguide/userguide_single.html
@PeterNiederwieser
gab mir einen Anhaltspunkt. Ich habe ein neues Android Studio plugin fürRobolectric
aus https://github.com/JCAndKSolutions/android-unit-testAlle, die die gleiche Lösung wie ich das problem lösen kann mit diesem Projekt.
Auch Sie können es verwenden, in
build.gradle
wieund jetzt
../gradlew clean check -Dtest.single=SomeTest
gut funktioniert.