Skip to content

Commit

Permalink
Kover Implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
testableapple committed Jan 9, 2025
1 parent 6d7a0fa commit c209688
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 40 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ jobs:

- name: Run unit tests
run: |
./gradlew :stream-video-android-ui-compose:testDebugUnitTest :stream-video-android-ui-compose:testCoverage --scan --stacktrace
./gradlew :stream-video-android-core:testDebugUnitTest :stream-video-android-core:testCoverage --scan --stacktrace
./gradlew :stream-video-android-ui-compose:koverXmlReport --scan --stacktrace
./gradlew :stream-video-android-core:koverXmlReport --scan --stacktrace
- name: Unit tests core results
uses: actions/upload-artifact@v4
Expand Down
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ plugins {
alias(libs.plugins.play.publisher) apply false
alias(libs.plugins.baseline.profile) apply false
alias(libs.plugins.sonarqube) apply false
alias(libs.plugins.kover) apply false
}

subprojects {
Expand Down
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[versions]
androidGradlePlugin = "8.4.2"
cameraCamera2 = "1.3.4"
kover = "0.9.1"
sonarqube = "6.0.1.5171"
spotless = "6.21.0"
nexusPlugin = "1.3.0"
Expand Down Expand Up @@ -222,6 +223,7 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi
kotlin-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binaryCompatabilityValidator" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover"}
sonarqube = { id = "org.sonarqube", version.ref = "sonarqube"}
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
dokka = { id = "org.jetbrains.dokka", version.ref = "kotlinDokka" }
Expand Down
45 changes: 7 additions & 38 deletions scripts/coverage.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
if (!rootProject.ext.sonar.ignoreModules.contains(name)) {
apply plugin: 'jacoco'
apply plugin: "org.jetbrains.kotlinx.kover"
apply plugin: "org.sonarqube"

def testTask = "testDebugUnitTest"
def jacocoResults = "${buildDir}/reports/jacoco/report.xml"

if (hasProperty('android')) {
android {
buildTypes {
Expand All @@ -17,46 +14,18 @@ if (!rootProject.ext.sonar.ignoreModules.contains(name)) {
}
}

afterEvaluate {
tasks.withType(Test).configureEach {
jacoco.includeNoLocationClasses = true
jacoco.excludes = [
'jdk.internal.*',
'androidx.core.*',
'com.android.*',
'android.*'
]
}

tasks.register("testCoverage", JacocoReport) {
dependsOn testTask

reports {
xml.required.set(true)
xml.outputLocation.set(file(jacocoResults))
kover {
reports {
verify {
warningInsteadOfFailure = true
}

executionData.setFrom(fileTree(dir: buildDir, includes: [
"outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec"
]))

sourceDirectories.setFrom(files([
"src/main/kotlin"
]))

classDirectories.setFrom(files([
fileTree(
dir: "${buildDir}/tmp/kotlin-classes/debug",
excludes: rootProject.ext.sonar.excludeFilter
)
]))
}
}

sonarqube {
properties {
property "sonar.junit.reportPaths", "${buildDir}/test-results/${testTask}"
property "sonar.coverage.jacoco.xmlReportPaths", jacocoResults
property "sonar.junit.reportPaths", "${buildDir}/test-results/testDebugUnitTest"
property "sonar.coverage.jacoco.xmlReportPaths", "${buildDir}/reports/kover/report.xml"
property "sonar.sources", "src/main/kotlin"
}
}
Expand Down

0 comments on commit c209688

Please sign in to comment.