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
Antwort
Ich rate Ihnen, CI
Server (Jenkins oder TeamCity) zu verwenden, und Abdeckung Gradle
Aufgabe dort ausführen.
CI Jobs Ausführung:
assemble
- Lauf
unit tests
und erzeugen Abdeckung - Lauf
code quality checks
(PMD
,CheckStyle
, etc.) - 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;)
- 1. Codeabdeckung mit jacoco für eine Android-Bibliothek
- 2. Sonar + JaCoCo - Codeabdeckung für Java und Groovy
- 3. Führen Sie einen durch die Zeilennummer durch Schutz angegebenen Spezifikation
- 4. So führen Sie einen Datumsvergleich durch
- 5. Führen Sie einen Makro durch Checkbox Eingang
- 6. Führen Sie einen Übergang ohne Animation durch?
- 7. Führen Sie einen Winkelmessertest in Eclipse durch
- 8. Wie bekomme ich Codeabdeckung einer externen Java-Bibliothek mit Jacoco?
- 9. Generierte Quellen von der Codeabdeckung ausschließen, ohne die gesamte Codeabdeckung zu beeinträchtigen
- 10. Einen Roboter durch einen Pfad führen
- 11. Codeabdeckung bei Play! Projekt
- 12. Karma run Einzeltest
- 13. NetBeans Codeabdeckung ohne POM Ändern
- 14. Wie führen Sie Joins mit Cursors durch?
- 15. Android Testcode Abdeckung mit JaCoCo Gradle Plugin
- 16. Einfacher Weg, um einen Zeitstempel zu überprüfen
- 17. Überprüfen Sie die Benachrichtigung in Android
- 18. So führen Sie die gegenseitige Zertifikatauthentifizierung mit httplib2 durch
- 19. Wo führen Sie Ihre Validierung durch?
- 20. Android: Führen Sie asynctask einmal pro Sitzung
- 21. Android Gradle Jacoco: Offline-Instrumentierung für Integrationstests
- 22. Führen Sie eine asynchrone Suche durch, die ObservableCollection zurückgibt
- 23. Jenkins und JaCoCo mit sbt
- 24. Iterieren durch Liste von Objekten, um Wert zu überprüfen
- 25. Optionen, um Team Foundation Server 2015 Codeabdeckung zu ermöglichen
- 26. Android - Führen Sie einen Thread wiederholt innerhalb eines Timers
- 27. So führen Sie die Anmeldung mit IdentityServer3 durch?
- 28. Verwenden Sie die mysql-Abfrage, um den Zeitstempelwert zu überprüfen
- 29. Führen Sie einen versteckten Cmd auf Klick
- 30. So führen Sie MYSQL REPLACE aus, um mehrere oder einzelne Leerzeichen durch | zu ersetzen (Rohr)
einfach die Klassen ausschließen? – user2511882
Sie können es von AndroidStudio aus tun, nur einen Klassenlauf definieren. – Eugene