Я пытаюсь запустить тестовое покрытие Jacoco на некоторое время. Я пробовал несколько возможных решений, описанных в этих темах:
Оболочка тестового кода Android с плагином JaCoCo Gradle
Как получить отчет о покрытии jacoco с помощью плагина Android Gradle 0.10.0 или новее?
Я запускаю тесты в эмуляционном устройстве с использованием genymotion. Вот что я добавил в build.gradle:
apply plugin: 'jacoco'
android{
jacoco {
version "0.7.1.201405082137"
}
buildTypes{
debug{
testCoverageEnabled = true
}
}
}
jacoco {
toolVersion "0.7.1.201405082137"
}
Чтобы запустить его, я использую что-то вроде
./gradlew clean
./gradlew createFLAVOR_NAMEDebugCoverageReport
Соответствующие сгенерированные файлы/папки:
/build/intermediates/coverage-instrumented-classes
/build/intermediates/jacoco
/build/outputs/code-coverage/connected/flavors/MyFlavor/coverage.ec
Однако нет ничего @build/reports/jacoco/test/html/index.html или любого отчета html-страницы/кода покрытия @/build/output.
Я также попытался создать выделенную задачу для создания отчета о покрытии:
def coverageSourceDirs = [
'src/main/java',
]
task jacocoTestReport(type: JacocoReport, dependsOn: "connectedAndroidTestFLAVOR_NAMEDebug") {
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/connectedAndroidTestMyFlavorDebug.exec")
// Bit hacky but fixes https://code.google.com/p/android/issues/detail?id=69174.
// We iterate through the compiled .class tree and rename $$ to $.
doFirst {
new File("$buildDir/intermediates/classes/").eachFileRecurse { file ->
if (file.name.contains('$$')) {
file.renameTo(file.path.replace('$$', '$'))
}
}
}
}
Затем ./gradlew clean и ./gradlew jacocoTestReport. Результат такой же, как и выше, поэтому нет html-страницы с отчет о покрытии или любого другого файла покрытия.
В настоящее время я использую Android Studio v1.0.2 с последней версией Gradle. Im довольно новичок в gradle, поэтому возможно, что здесь отсутствует что-то основное.
Спасибо