Android Gradle Test Framework: einzelne Klasse

8

Ist es möglich, eine einzige Testklasse mit dem neuen Android-Framework zum Erstellen von Google-Konten auszuführen?

Ich habe ein Testpaket mit mehreren Testklassen (alle sind InstrumentationTestCase-Klassen). Ich konnte meine build.gradle-Datei zum Ausführen des Testpakets einrichten

%Vor%

Aber gibt es eine Möglichkeit, nur einen Testfall in diesem Paket zu testen? Ansonsten benutze ich das uralte adb shell am instrument -w .......

P.S. Momentan habe ich keine Zeit, auf Roboelectric umzusteigen, aber ich sehe, dass es heutzutage ziemlich genau das Defacto-Framework ist.

    
vosmith 18.12.2013, 15:01
quelle

2 Antworten

4

Mit android.test.InstrumentationTestRunner no ist dies nicht möglich. Sie haben jedoch Optionen:

Benutzerdefinierter Test-Runner

  1. Erweitern android.test.InstrumentationTestRunner
  2. Fügen Sie ein buildConfigField 'String', 'TEST_NAME', '${testName}' hinzu, wobei testName ist '"${project.properties.get("test")}"' falls gesetzt, ansonsten null
  3. Führen Sie in Ihrem Runner nur Tests aus, die BuildConfig.TEST_NAME entsprechen (wenn null, führen Sie alle Tests durch)
  4. Ersetzen Sie testInstrumentationRunner durch Ihren benutzerdefinierten Runner
  5. Tests mit ./gradlew connectedCheck -Ptest=com.example.Test.testSomething ausführen

Verwenden Sie Löffel

Spoon ist eine ausgezeichnete Test-Runner-Erweiterung, die Sie unter anderem (wie schöne Multi-Device-Testberichte) laufen lässt einzelne Tests. Da du gradle verwendest, empfehle ich das Spoon Gradle Plugin , das genau das zeigt, was du willst mach es in seiner README.

Update: Führen Sie einzelne Unit Tests mit Android Gradle Plugin

aus

Mit der Unterstützung von Komponententests unterstützt Android nun das Ausführen einzelner Komponententests.

  

Dies ist nur eine Ankeraufgabe, tatsächliche Testaufgaben heißen testDebug und testReleas e usw. Wenn Sie nur einige Tests mit dem gradle --tests -Flag ausführen möchten, können Sie dies tun, indem Sie ./gradlew testDebug --tests='*.MyTestClass' ausführen. .

Quelle

Bearbeiten : Ich sollte auch hinzufügen, dass Spoon ein Drop-in-Ersatz für laufende Tests ist. Sie müssen nur ein paar Zeilen in Ihrem Build-Skript ändern, um es zu verwenden.

    
Mike Holler 08.05.2015, 14:38
quelle
3

Wie in Ссылка beantwortet, gibt es jetzt android.testInstrumentationRunnerArguments.class

    
friedger 24.10.2015 19:00
quelle