2015-05-28 10 views
11

Ich benutze ./gradlew createDebugCoverageReport, um einen Bericht über die Codeabdeckung aller meiner Android Instrumentierungs (Robotium) -Tests zu erstellen. Aber ich muss alle Tests durchführen, um den Deckungsbericht jetzt zu erhalten. Wie kann ich einen einzelnen Test (oder eine einzelne Testklasse) angeben, der ausgeführt werden soll, und den Abdeckungsbericht abzurufen? Ich habe es während der Entwicklung der Tests beachtet, es ist zu langsam, alle Tests auf einmal durchführen zu müssen.Führen Sie einen Einzeltest durch, um die Codeabdeckung zu überprüfen. Jacoco Android

+0

einfach die Klassen ausschließen? – user2511882

+0

Sie können es von AndroidStudio aus tun, nur einen Klassenlauf definieren. – Eugene

Antwort

0

Ich rate Ihnen, CI Server (Jenkins oder TeamCity) zu verwenden, und Abdeckung Gradle Aufgabe dort ausführen.

CI Jobs Ausführung:

  1. assemble
  2. Lauf unit tests und erzeugen Abdeckung
  3. Lauf code quality checks (PMD, CheckStyle, etc.)
  4. Lauf acceptance/instrumentation tests und erzeugen Abdeckung

Mak e Die Jobs werden nacheinander ausgeführt.

Und lokal, während der Entwicklung, nur Tests (Bonus - Run unit tests with coverage) für eine spezifische class oder method.

Instrumententests brauchen viel mehr Zeit als Unit Tests, und das ist normal. Ich glaube, dass Sie nicht die volle Projektabdeckung benötigen, während Sie Robotium Tets schreiben. Sobald Sie mit dem Schreiben von Tests fertig sind, führen Sie alle Tests mit Codeabdeckung durch.

Update: Sie können Ihre Gerätetests Ausführung durch Bewegen von Robotium zu Espresso beschleunigen. Werfen Sie einen Blick auf Espresso vs Robotium benchmark. Happy testing;)

Verwandte Themen