Ich verwende make
für Gebäude und Robolectric
als Framework für die Ausführung von Android-Tests. Ich möchte die Abdeckung meiner App berechnen. Für Instrumentierungstests verwendete ich emmalib
. Wie kann ich in diesem Fall die Deckungsrechnung am besten einrichten? Ich kann nicht nach Groß- oder Kleinformat wandern.So berechnen Sie Testabdeckung während der Verwendung von Robolectric
Antwort
Sind Sie an Emma gebunden? Wie wäre es mit RoboElectric + Cobertura Codeabdeckung? (Ich glaube, Sie haben soeben einen CLI für die obige Kombination verwenden könnte)
So Optionen
1.) RoboElectric + Cobertura - CLI allein wahrscheinlich für jemanden nicht auf ANT
2.) JaCoCo könnten einige haben nützliche Optionen
3.) rein Android Testing + Emma/EclEmma
Nützliche Links Trails
folgenGenerating android code coverage though changes in build.xml and ant.properties
https://intellectualcramps.wordpress.com/2013/08/18/code-coverage-of-robolectric-tests-using-jacoco/
https://bitbucket.org/ravidsrk/androidstarter
EDIT:
Nun die meisten der Tutorials habe ich leider über den Einsatz Ameise kommen, und ich denke, es ist nicht Es wäre eine schlechte Idee für Sie, zu einem empfohlenen Build-System zu wechseln Ike Gradle, so dass es viele Optionen eröffnet. Aber für JaCoCo könnte man sich hier einen Blick: https://intellectualcramps.wordpress.com/2013/08/18/code-coverage-of-robolectric-tests-using-jacoco/
UPDATE:
Verschoben dies von den Kommentaren zu dem Antwortabschnitt für Informationen zu alle, das zu sehen und weil dies eine Prämie Frage
Eine Lösung wäre, Cobertura zu verwenden, um Code Coverage zu generieren, die in Eclipse integriert werden können und auch von einem Ant-Build-Skript ausgeführt werden.
Eine Vorlage Projekt einer solchen Integration ist hier zu finden: https://github.com/adgllorente/android-cobertura-boilerplate
Beachten Sie, dass alle von der Magie in der build.xml des Testprojekts geschieht. Diese Aufgaben sollten wahrscheinlich zu einer custom_rules.xml
Datei verallgemeinert werden, so dass Sie immer noch android
verwenden können, um Ihre Projekte zu aktualisieren.
schließlich für Gradle haben Sie viele verschiedene Möglichkeiten:
- http://raptordigital.blogspot.nl/2014/08/code-coverage-reports-using-robolectric.html
- http://chrisjenx.com/gradle-robolectric-jacoco-dagger/
- https://stackoverflow.com/a/25037742/2771851
Beachten Sie, dass Sie immer Gradle als sekundäre Build-System verwenden können, nur zu erzeugen, die Abdeckungsberichte. (aber ein zweites Build-System wird eine Menge Overhead einführen)
Ich benutze nicht Gradle, Maven oder Ameise. Mein Build ist rein Make basiert (siehe AOSP-Code-Basis). Ich werde einen Blick auf cobertura werfen, der das Arbeiten mit cmd line ohne etwas anderes zu ermöglichen scheint. – gruszczy
jacoco arbeitet manchmal nicht mit Robelectric und powermock runner können Sie Klee ein atlassian Werkzeuge verwenden es ist jetzt Open-Source-Tool.
Hilft das ?: http://stackoverflow.com/questions/13466482/generating-android-code-coverage-though-change-in-build-xml-and-ant-properties – Slartibartfast
Wie wäre es mit RoboElectric + Cobertura?/EclEmma für Codeabdeckung? – Slartibartfast
Slartibartfast: Wir verwenden keine Ameise. Haben Sie ein Tutorial zur Integration von Robo und Cobertura/EclEmma? Ich werde heute versuchen, JaCoCo zu verwenden. – gruszczy