[JAVA] So erhalten Sie Berichterstattung über Android Instrumented Tests [Geben Sie Ihr Bestes]

Einführung

Notieren Sie sich diesmal die Erfassung der Abdeckung mit Android Instrumented Tests. Erstens, wenn Sie einen Unit-Test mit Android Studio durchführen Ich habe über die Verwendung von Robolectric zum Testen von Android-abhängigen Teilen auf einer JVM gesprochen. Aus verschiedenen Gründen habe ich den vorherigen Test Android Test geschrieben.

Ich wusste zum ersten Mal nichts über die Android-Entwicklung, daher hatte ich eine gute Idee, verschiedene Dinge zu untersuchen.

Strategie 1: Verwenden Sie "createDebugCoverageReport".

1. Ich konnte die Version von Jacoco nicht ändern

Was daran falsch ist, ist, dass ich keine C0C1-Abdeckung erhalten konnte, weil die Jacoco-Version alt war. Ehrlich gesagt finde ich es nicht lächerlich, Zeit ehrlich mit der Berichterstattung über C0C1 zu verbringen. Es gibt keine "Je höher die Abdeckung, desto höher die Qualität des Quellcodes".

Nun, wenn mir gesagt wurde, ich solle es auf 100 setzen, hätte ich keine andere Wahl, als es zu tun, also habe ich verschiedene Dinge untersucht. Ich schreibe keinen Testcode, um ihn zu 100% zu machen, sondern gebe ihn Jacoco 0.8.0 oder höher. In dem Artikel heißt es, dass ein Upgrade auf die Jacoco 0.8.0-Version die C0C1-Abdeckung verbessert. Ich konnte jedoch die Version von Jacoco, auf die sich der createDebugCoverageReport bezieht, einfach nicht ändern.

2. Ausschlusseinstellungen können nicht vorgenommen werden

Dies kann auf mangelnde Studien zurückzuführen sein, aber ich konnte in createDebugCoverageReport keine Ausschlüsse festlegen. Ich habe viel recherchiert, aber ich konnte es nicht tun, also kann ich nichts dagegen tun.

Unter den obigen Gesichtspunkten 1 und 2 geben wir Strategie 1 auf und fahren mit Strategie 2 fort.

Strategie 2: "Jacoco Test Report"

Wie Sie Ihre eigene Aufgabe schreiben, um Berichterstattung in Gradle zu erhalten. Damit konnte ich 1 und 2 von Strategie 1 lösen.

jacoco {
    toolVersion = "0.8.3"
}
task jacocoTestReport(type: JacocoReport, dependsOn: "connectedDebugAndroidTest") {
    group = "Reporting"
    description = "Generate Jacoco coverage reports"

    // exclude auto-generated classes and tests
    def fileFilter = ['**/R.class',
                      '**/R$*.class',
                      '**/R.styleable',
                      '**/R$*.styleable',
                      '**/BuildConfig.*',
                      '**/Manifest*.*',
                      '**/*IScript*.*',
                      'android/**/*.*',
                      'androidx/**/*.*',
                      '**/*_Impl*',
                      '**/*_Factory*',
                      '**/*_MembersInjector*',
                      '**/*Fake*']

    def debugTree = fileTree(dir:
            "${project.buildDir}/intermediates/javac/debug", excludes: fileFilter)
    def mainSrc = "${project.projectDir}/src/main/java"

    sourceDirectories = files([mainSrc])
    classDirectories = files([debugTree])

    executionData = fileTree(dir: project.projectDir, includes:
            ['**/*.exec', '**/*.ec'])

    reports {
        xml.enabled = true
        xml.destination = "${buildDir}/jacocoTestReport.xml"
        csv.enabled = false
        html.enabled = true
        html.destination = "${buildDir}/reports/jacoco"
    }
}

Ich konnte die Version von Jacoco angeben und solche Ausschlüsse festlegen. Lassen Sie uns diesen in der Zukunft verwenden.

Tschüss

Recommended Posts

So erhalten Sie Berichterstattung über Android Instrumented Tests [Geben Sie Ihr Bestes]
Wie komme ich zum heutigen Tag?
[Java] So erhalten Sie die URL der Übergangsquelle
[Java] So erhalten Sie den Maximalwert von HashMap
Stand April 2018 So installieren Sie Java 8 auf einem Mac
So verhindern Sie, dass editTextPreference von android PreferenceFragmentCompat beschädigt wird
[Rails] So erhalten Sie den Inhalt starker Parameter
[Swift] So erhalten Sie die Firebase-Dokument-ID
Eine nicht unterstützte Java-Version So beseitigen Sie Fehler
So erhalten Sie Werte in Echtzeit mit TextWatcher (Android)
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
So implementieren Sie eine einzeilige Anzeige von TextView in der Android-Entwicklung
[jsoup] So erhalten Sie die gesamte Dokumentation
So führen Sie JUnit im Batch aus und erhalten Abdeckung
Sie können alles mit Ihrem Android-Smartphone oder -Tablet tun! Zusammenfassung von Arekore, um mit Termux zu ziehen
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
[Swift5] So erhalten Sie ein Array und eine Reihe von Unterschieden zwischen Arrays
So ermitteln Sie die Länge einer Audiodatei mit Java
So bringen Sie JDK 11 bequem in den Mac
Verwendung von HttpClient (Get) von Java
Wie fange ich mit schlank an?
Wie man eine Ansicht auf Android "aushöhlt"
Erhalten Sie JUnit-Codeabdeckung für Android.
So erhalten Sie Parameter in Spark
Verwendung von setDefaultCloseOperation () von JFrame
[Android] So erstellen Sie ein Dialogfragment
[Java] [ibatis] So erhalten Sie 1-zu-N-Beziehungsdatensätze mit List <Map <>>
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
[Für Rails-Anfänger] Zusammenfassung der Verwendung von RSpec (Überblick)
Android-Entwicklung, wie man den Wert des JSON-Objekts auf null überprüft
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert