Jacoco Kotlin Классы данных фильтруют геттеры и сеттеры? - PullRequest
0 голосов
/ 13 сентября 2018

Итак, после обновления до Jacoco 0.8.2 мое покрытие кода класса данных значительно улучшилось, поскольку теперь оно отфильтровывает большинство сгенерированных функций, «равно», «хэш-код» и т. Д. Однако, он все еще ищет тесты для все геттеры и сеттеры, которые генерирует Kotlin.

Есть ли дополнительные настройки, которые я пропускаю, чтобы разрешить их отфильтровывать? Я знаю, что могу отфильтровать целые классы или каталоги, но в идеале есть способ отфильтровать эти функции. Ниже мое текущее задание для Джакоко.

project.jacoco {
                toolVersion = '0.8.2'
            }

            project.tasks.create(
                    name: 'jacocoTestReport',
                    type: JacocoReport,
                    dependsOn: "test${capVariant}UnitTest"
            ) {
                def buildDir = project.buildDir

                def coverageSourceDirs = [
                        "src/main/java",
                        "src/main/kotlin"
                ]

                def fileFilter = [
                        '**/R.class',
                        '**/R$*.class',
                        '**/*$ViewInjector*.*',
                        '**/*_Factory.*',
                        '**/*_MembersInjector.*',
                        '**/*$ViewBinder*.*',
                        '**/BuildConfig.*',
                        '**/Manifest*.*',
                        '**/di/**',
                        '**/*Activity*.*',
                        '**/*Fragment*.*',
                        '**/*Adapter*.*',
                        '**/*ViewHolder*.*',
                        '**/reusableComponents/**',
                        '**/App.*'
                ]

                def javaClasses = fileTree(
                        dir: "$buildDir/intermediates/classes/$folder",
                        excludes: fileFilter
                )
                def kotlinClasses = fileTree(
                        dir: "$buildDir/tmp/kotlin-classes/$variant",
                        excludes: fileFilter
                )
                KotlinGeneratedFilter = true
                group = "Reporting"
                description = "Generate Jacoco coverage reports for the ${project.name} with the " +
                        "$variant variant."
                classDirectories = files([ javaClasses ], [ kotlinClasses ])
                additionalSourceDirs = files(coverageSourceDirs)
                sourceDirectories = files(coverageSourceDirs)
                executionData = files("${project.buildDir}/jacoco/test${capVariant}UnitTest.exec")
                reports {
                    xml.enabled = true
                    html.enabled = true
                }
            }
...