Ich versuche, Jacoco Code Coverage Report zu generieren. Ich habe AndroidTestCase für meine Testklassen verwendet.Jacoco Code Coverage in android Studio
Ich habe mit testCoverageEnabled wahr und unter Verwendung von Standard-Android--Studio Standard jacoco gefunden, ./gradlew connectedCheck oder createDebugCoverageReport schaffen den Prozentsatz der erfolgreichen/Testfälle scheitern, aber keine Deckung Bericht.
Dann habe ich jacoco {toolVersion "0.7.1.201405082137"} und Aufgabe jacocoTestReport (Typ: JacocoReport, dependsOn: "testDebug") versucht. Ich habe versucht, den dependsOn-Wert mit verschiedenen Aufgaben zu ändern. Der Bericht zeigt eine Testabdeckung von 0 (Null), was unmöglich ist, da mindestens die Hälfte aller Klassen getestet wird.
Ich habe verschiedene angenommene Antwort von Stapelüberlauf in den letzten paar Tagen gefolgt. Das Ergebnis ist negativ.
Meine gradle Datei:
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
apply plugin: 'com.android.application'
apply plugin: 'jacoco'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "test.gradle.com.myapplicationtestgradle"
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(
'proguard-android.txt'), 'proguard-rules.pro'
}
debug {
testCoverageEnabled true
}
}
jacoco {
version "0.7.1.201405082137"
}
packagingOptions {
exclude 'LICENSE.txt'
}
}
jacoco {
toolVersion "0.7.1.201405082137"
}
task jacocoTestReport(type:JacocoReport, dependsOn: "testDebug") {
group = "Reporting"
description = "Generate Jacoco coverage reports"
// exclude auto-generated classes and tests
def fileFilter = ['**/R.class', '**/R$*.class',
'**/BuildConfig.*', '**/Manifest*.*',
'android/**/*.*']
def debugTree = fileTree(dir:
"${project.buildDir}/intermediates/classes/debug",
excludes: fileFilter)
def mainSrc = "${project.projectDir}/src/main/java"
sourceDirectories = files([mainSrc])
classDirectories = files([debugTree])
additionalSourceDirs = files([
"${buildDir}/generated/source/buildConfig/debug",
"${buildDir}/generated/source/r/debug"
])
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"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('junit:junit:4.11') {
exclude module: 'hamcrest-core'
}
}
Bezug nehmend nur, was scheint die kanonische Methode zu sein, um jede Art von Abdeckung Bericht erzeugt zu bekommen, siehe [diese] (http://Stackoverflow.com/q/23795595/269300) SO Frage - für jeden, der hat Probleme, "createDebugCoverageReport" zu erhalten. –
Ich habe diese akzeptierte Antwort bereits gesehen. Ich denke. Sie sind sowohl für Instrumentierungstests als auch für Komponententests geeignet. Ich muss mir die (testDebug.jvMArgs) ansehen. Vielen Dank für die Erläuterung einiger nützlicher Informationen. – user1365169
Dies scheint nicht beide Berichte für mich zusammenzuführen. Es umfasst nur die Abdeckung von Android-Tests, nicht Unit-Tests. Ich benutze verschiedene Geschmacksrichtungen, aber ich habe "project.afterEvaluate" entsprechend geändert. Irgendeine Idee? –