12
Tôi muốn chạy thử nghiệm trong ứng dụng Android và tạo báo cáo bảo hiểm, vì vậy tôi đã thêm cấu hình Jacoco vào tệp build.gradle của mình, nhưng nó không hoạt động.Jacoco Android createDebugCoverageReport không tìm thấy
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
applicationId "mm"
minSdkVersion 12
targetSdkVersion 18
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
dependencies {
compile 'com.google.code.gson:gson:2.1'
compile files('libs/android-async-http-1.4.4.jar')
compile files('libs/freemarker.jar')
compile files('libs/greendao-1.3.1.jar')
compile files('libs/raygun4android-1.1.0.jar')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
testCompile 'org.mockito:mockito-core:1.10.19'
testCompile 'org.hamcrest:hamcrest-library:1.3'
compile 'junit:junit:4.11'
androidTestCompile('junit:junit:4.11') {
exclude module: 'hamcrest-core'
}
}
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
classpath 'org.robolectric:robolectric-gradle-plugin:0.11.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'jacoco'
jacoco {
version "0.7.1.201405082137"
}
jacoco {
toolVersion "0.7.1.201405082137"
}
def coverageSourceDirs = [
'src/main/java',
]
task jacocoTestReport(type: JacocoReport, dependsOn: "testDebug") {
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
reports {
xml.enabled = true
html.enabled = true
}
classDirectories = fileTree(
dir: './build/intermediates/classes/debug',
excludes: ['**/R*.class',
'**/*$InjectAdapter.class',
'**/*$ModuleAdapter.class',
'**/*$ViewInjector*.class'
])
sourceDirectories = files(coverageSourceDirs)
executionData = files("$buildDir/jacoco/testDebug.exec")
doFirst {
new File("$buildDir/intermediates/classes/").eachFileRecurse { file ->
if (file.name.contains('$$')) {
file.renameTo(file.path.replace('$$', '$'))
}
}
}
}
Tôi biết, có vấn đề với phiên bản gradle 1.3.0 và 1.3.1 với nó nên làm việc bình thường, tuy nhiên với 1.3.1 tôi nhận được Task 'createDebugCoverageReport' not found in root project
.
Tôi đang gặp vấn đề tương tự như OP. Tôi đã testCoverageEnabled được đặt thành true, nhưng nó dường như không giúp ích gì. –
Bạn có bao gồm trong buildType bắt buộc của (các) mô-đun mà mã nguồn không? –