2015-01-16 7 views
6

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

+0

Hilft das ?: http://stackoverflow.com/questions/13466482/generating-android-code-coverage-though-change-in-build-xml-and-ant-properties – Slartibartfast

+0

Wie wäre es mit RoboElectric + Cobertura?/EclEmma für Codeabdeckung? – Slartibartfast

+0

Slartibartfast: Wir verwenden keine Ameise. Haben Sie ein Tutorial zur Integration von Robo und Cobertura/EclEmma? Ich werde heute versuchen, JaCoCo zu verwenden. – gruszczy

Antwort

4

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

folgen

Generating android code coverage though changes in build.xml and ant.properties

Android Gradle Code Coverage

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

+0

Cobertura scheint eine gute Option zu sein, werde ich Versuch es. – gruszczy

+0

Cobertura hat funktioniert, danke. – gruszczy

1

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:

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)

+0

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

0

jacoco arbeitet manchmal nicht mit Robelectric und powermock runner können Sie Klee ein atlassian Werkzeuge verwenden es ist jetzt Open-Source-Tool.