Я использую Jacoco для создания отчета о покрытии, и это работало нормально до обновления версий Gradle и BuildTools. Затем я возвращаю эти изменения и снова работаю.
Jacoco ищет здесь файлы .class:
$ {BuildDir}/промежуточные/классы/отладки
Это приложение/сборка/промежуточные/классы/отладка. Но я заметил, что после обновления этот путь отсутствует, внутри промежуточных классов нет классов dir
Моя конфигурация, которая работает:
Модуль уровня проекта
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'io.fabric.tools:gradle:1.25.1'
Модуль уровня приложения
compileSdkVersion 27
buildToolsVersion "27.0.3"
И при обновлении это:
Модуль уровня проекта
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'io.fabric.tools:gradle:1.25.4'
Модуль уровня приложения
compileSdkVersion 28
buildToolsVersion "28.0.3"
Я не мог найти никаких ссылок о том, что путь движется или что может происходить
Моя проблема в том, что, поскольку Java Byte Code (сгенерированные файлы .class) не существует, Jacoco не может создать отчет о покрытии
Они находятся в intermediates\javac\debug\compileDebugJavaWithJavac\classes
Вы можете настроить Jacoco для изменения пути классов.
Я не знаком с Jacoco, но я думаю, что он имеет свойство с именем includes
, который используется для файлов .class.
Или, должно быть, .properties
для этого, я думаю.
Можно изменить classDirectories
используемые задачей покрытия одинаково:
task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
...
classDirectories = fileTree(
dir: "${project.buildDir}/intermediates/javac/debug/compileDebugJavaWithJavac/classes/${sourcePath}",
excludes: [ ... ]
)
...
}
search
> in path
для шаблона *.class
предоставила бы точно такую же информацию.