1

My project is a mixture of java and kotlin code. When I run with coverage, all java files show methods and lines covered but none kotlin files show coverage.

Here is one of my kotlin class which is fully covered. But in the project structure, the percentage is not showing.

Also, this project uses sonarqube. kotlin files are also not covered on sonar.

Here are my sonar properties in Gradle

sonarqube {
    properties {
        // Root project information
        property 'sonar.projectKey', 'projectName'
        property 'sonar.projectName', 'projectName'

        // Some properties that will be inherited by the modules
        property 'sonar.sources', 'src/main/java/com/projectName/app'
        property 'sonar.sourceEncoding', 'UTF-8'
        property 'sonar.exclusions', '**/*.html,**/*.css,**/*.png,**/*.jpg,**/*.JPG,**/io/ionic*,**/io/ionic**,**/io/ionic**/*.class,**/org/*,**/org/**,**/org/**/*.class,**/cordova/*,**/cordova/**,**/cordova/**/*.class,**/android/*,**/android/**,**/android/**/*.class,**/apache/commons/**,**/io/realm/**,**/com/mikhaellopez/**,**/io/michaelrocks/**,**/io/michaelrocks/**,**/org/apache/**,**/databinding/**/*.*,**/android/databinding/*Binding.*,**/*_ViewBinding*/**/*.class,**/*_ViewBinding*/**/*.java,**/BR.*,**/R.*,**/R$*.*,**/BuildConfig.*,**/Manifest*.*,**/*_MembersInjector.*,**/Dagger*Component.*,**/Dagger*Component$Builder.*,**/*Module_*Factory.*,**/*ParcelConverter.java,**/*Parcelable.*,**/*Parcelable*.*,**/*_ViewBinding*.*'
        property 'sonar.scm.provider', 'git'
        property 'sonar.java.source', '1.8'
        property 'sonar.java.coveragePlugin', 'jacoco'
        property 'sonar.coverage.exclusions', '**/*.html,**/*.css,**/*.png,**/*.jpg,**/*.JPG,**/io/ionic*,**/io/ionic**,**/io/ionic**/*.class,**/org/*,**/org/**,**/org/**/*.class,**/cordova/*,**/cordova/**,**/cordova/**/*.class,**/android/*,**/android/**,**/android/**/*.class,**/apache/commons/**,**/io/realm/**,**/com/mikhaellopez/**,**/io/michaelrocks/**,**/io/michaelrocks/**,**/org/apache/**,**/databinding/**/*.*,**/android/databinding/*Binding.*,**/*_ViewBinding*/**/*.class,**/*_ViewBinding*/**/*.java,**/BR.*,**/R.*,**/R$*.*,**/BuildConfig.*,**/Manifest*.*,**/*_MembersInjector.*,**/Dagger*Component.*,**/Dagger*Component$Builder.*,**/*Module_*Factory.*,**/*ParcelConverter.java,**/*Parcelable.*,**/*Parcelable*.*,**/*_ViewBinding*.*'
        property 'sonar.coverage.jacoco.xmlReportPaths', 'build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml'
        property 'sonar.junit.reportsPath', "${project.buildDir}/test-results/testDevDebugUnitTest"
        property 'sonar.java.test.binaries', "${project.buildDir}/intermediates/javac/devDebugUnitTest/classes"
        property 'sonar.java.binaries', "${project.buildDir}/intermediates/javac/devDebug/classes/com/projectName/app"
        property 'sonar.projectVersion', getFlavorVersionCode()
    }
}

I have tried adding following properties :

property 'sonar.language', 'kotlin,java'
property 'sonar.inclusions', '**/*.java,**/*.kt'
property 'sonar.coverage.inclusions', '**/*.java,**/*.kt'

didn't work.

Any help would be appreciated.

EDIT:

I'm able to resolve this problem with sonar using this answer. but the issue still persists in the android studio.

Niraj
  • 903
  • 8
  • 23

0 Answers0