我正在尝试使用Gradle Android插件0.10.2获取测试覆盖率报告.但是在运行一些测试后我仍然无法获得覆盖率报告.(connectedAndroidTest).
我的主模块的build.gradle是:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
testCoverageEnabled true
}
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}
Run Code Online (Sandbox Code Playgroud)
而project的build gradle的buildscript部分是:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.+'
}
}
Run Code Online (Sandbox Code Playgroud)
一旦我gradlew connectedAndroidTest从终端运行,我可以在文件夹中找到coverage-instrumented-classes和code-coverage文件build夹.但我coverage在reports文件夹中找不到文件夹.(只有我能看到的是androidTests文件夹) …
可以在此处找到包含用于此问题的代码的Github仓库:https: //github.com/thenewmr/UnitTestCoverageExample
我们一直在努力通过正确生成的Jacoco获取代码覆盖率报告.
我们遵循了互联网上的各种指南,包括这个由帕特里克·麦克拉伦,他挂在他的回答这个问题.
我们还看了关于堆栈溢出的各种问题,但到目前为止还没有快乐.
这是我们到目前为止所用的内容(以子弹点的形式,以免使这个问题太长而无法阅读):
testCoverageEnabled = true到调试闭包创建了一个名为"createDebugCoverageReport"的任务运行此任务:
现在,如果我们添加以下内容:
apply plugin: 'jacoco'
//specify which directories should be examined by jacoco
def coverageSourceDirs = [
'src/main/java'
]
task jacocoTestReport(type:JacocoReport, dependsOn: "testDebug") {
group = "Reporting"
description = "Generate Jacoco coverage reports"
classDirectories = fileTree(
dir: 'build/intermediates/classes/debug',
excludes: ['**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/BuildConfig.*',
'**/Manifest*.*']
)
additionalSourceDirs = files(coverageSourceDirs)
sourceDirectories = files(coverageSourceDirs)
executionData = files('build/jacoco/testDebug.exec')
reports { …Run Code Online (Sandbox Code Playgroud)我正在使用 Android Gradle 插件 3.0.0。
我正在将一个 Android 应用程序从 java 迁移到 kotlin。我的应用程序包含 Java 和 Kotlin 类,测试使用 Java。
我跑./gradlew clean jacocoTestReport。
这将运行单元测试 ( src/test) 和仪器测试 ( src/androidTest)。
jacoco in 生成的报告app/build/reports/jacoco/jacocoTestReport/html/index.html没有显示单元测试确实涵盖了 Kotlin 类的覆盖率。
该报告确实从仪器测试中正确显示了覆盖率。
注意:我遇到了这些其他问题,它们不是完全相同的问题:
我的应用程序模块的 build.gradle 的相关部分:
apply plugin: 'jacoco'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
...
android {
defaultConfig {
sourceSets {
main.java.srcDirs …Run Code Online (Sandbox Code Playgroud)