Wie bekomme ich Code-Coverage in Android mit Maven (Android-Maven-Plugin)

Ich habe ein Android Maven Projekt (nennen wir es parent_project ), das verschiedene Submodule enthält: my_library_project , app_using_my_library_project , test_project und extra_lib .

So wäre die Struktur so:

  • BroadcastReceiver + SMS_RECEIVED
  • Android Data Binding und Kotlin
  • Analysieren eines Arrays von JSON-Objekten mit Jackson 2.0
  • Zurücksetzen in ScrollView
  • Trigger Back-Button-Funktionalität auf Knopf klicken in Android
  • Android App ist nicht kompatibel mit Samsung Galaxy S4
  • parent_project * my_library_project (Android Library Project) * app_using_my_library_project (Demo app that uses the Android Library Project) * test_project (Project containing the tests instrumented against app_using_my_library_project) * extra_lib 

    Was ich möchte, ist die Erstellung von Testabdeckung für mein Android-Projekt mit Maven (und nicht Ant, ich bin bereits in der Lage, Code Coverage Berichte mit Ant zu generieren, nach diesen Anweisungen: https://wiki.jenkins-ci.org/display/ JENKINS / Building + ein + Android + App + und + Test + Projekt ).

    Ich habe keine starke Vorliebe für die Code-Abdeckung Tool verwendet, aber ich würde lieber EMMA, da scheint die häufigste in der Android-Entwicklung Welt.

    Ich benutze android-maven-plugin (http://code.google.com/p/maven-android-plugin/) in seiner 3.0.0-alpha-12 Version und ich habe bereits versucht, die Konfiguration von mir zu setzen Parent's pom.xml die nächste:

     <test> <coverage>true</coverage> <createreport>true</createreport> </test> 

    Aber das macht nicht den gewünschten Code Coverage Report.

    Damit:

    • Gibt es einen Unterschied zwischen der pom-Konfiguration für die Code-Abdeckung für ein Standard-Java-Projekt und ein Android-Projekt?
    • Kennen Sie ein Beispiel Android-Projekt mit Maven, die Code-Abdeckung hat?
    • Irgendwelche Hinweise darauf, wie man das macht?

  • Warum wird TextView in einer Zeile mit "End" -Displays elipsisiert?
  • Wie man die Tastatur ausschaltet, wenn die Aktivität beginnt
  • Wie bekomme ich App wie Flipboard?
  • Android-Fragmente: Wann verwenden Sie ausblenden / zeigen oder hinzufügen / entfernen / ersetzen?
  • Mehrere Instanzen von Android SDK Build-Tools, Bug oder Feature?
  • Java android: Anfügen eines Newline mit TextView
  • 2 Solutions collect form web for “Wie bekomme ich Code-Coverage in Android mit Maven (Android-Maven-Plugin)”

    Wenn du mit maven haften willst und ein Plugin für Maven willst, das den Code-Coverage-Job machen wird, denke ich, dass Cobertura eine bessere Wahl ist, da Emma stabil letzter Build von 2005 ist.

    Obwohl in "Android Application Testing Guide" (ein aktuelles Buch von Juni dieses Jahres) sprechen sie über Emma und demonstrieren, wie man es zum Testen verwendet, ich denke, die Leute bleiben dabei, weil es benötigt wird, um Android aus der Quelle zu bauen (und wenn Google verwenden Es für ihre eigene OS-Entwicklung, sollte es das Beste sein, richtig?).

    Wenn du nicht fanatisch an Maven gebunden bist, empfehle ich dringend, Robotium zu versuchen. Robotium hat volle Unterstützung für Aktivitäten, Dialoge, Toasts, Menüs und Kontextmenüs. Es unterstützt auch Code- Abdeckung (Ant basiert aber für jetzt) ​​und einige Leute erkennen es als eine der führenden Test-Plattformen für Android.

    Bearbeiten:

    Nach der Cobertura-Website , unterstützt es Code-Abdeckung in Maven 1 und Maven 2 Umgebungen. Zwar gibt es auch Beispiele mit Maven 3. Ein Problem besteht zwischen pom-Konfigurationen von Maven 2 und Maven 3. Es scheint für die Berichterstattung zu arbeiten, müssen Sie grundsätzlich Ihre alten Reporting-Plugins in den Konfigurationsabschnitt des neuen maven-site-plugins verschieben . (Siehe den Artikel für Details).

    Eine weitere Möglichkeit ist, Sonar mit Maven zu benutzen. Sonar hat Cobertura eingebettet (auch Optionen zum Einbetten von EMMA ) und einige Leute sagen, dass sie erfolgreich Code-Coverage gemeldet haben, obwohl sie Probleme mit dem "Stand-alone" Cobertura Plugin hatten.

    Ich könnte Code-Abdeckung mit Emma-Maven-Plugin gemeldet und Display-Berichte in Sonar für ein Android-Anwendung Projekt. Folgen Sie einfach der Konfiguration unter https://code.google.com/p/maven-android-plugin/wiki/EmmaMaven . Aber für das Bibliotheksprojekt bekomme ich eine 0% Abdeckung. Es erzeugt nicht die Metadatendateien. Doch sobald ich das Bibliotheksprojekt zum Paket als Apk verpacke, funktioniert es wie ein Charme. Es führt die Tests in einem Emulator (konfiguriert in Jenkins) und zeigt die Berichterstattung Berichte. Wenn Sie sich speziell für das Bibliotheksprojekt ausprobieren, hilft das nicht. Ich werde posten, wenn ich eine Lösung finde, die sich mit Bibliotheksprojekten beschäftigt.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.