Skip to content

Comments

Add kover#197

Merged
hossain-khan merged 3 commits intomainfrom
add-kover
Mar 1, 2025
Merged

Add kover#197
hossain-khan merged 3 commits intomainfrom
add-kover

Conversation

@hossain-khan
Copy link
Owner

No description provided.

@hossain-khan hossain-khan self-assigned this Mar 1, 2025
@hossain-khan
Copy link
Owner Author

Not sure what sonnet came up with when asked

I want to add Kotlin Kover plugin seen in https://kotlin.github.io/kotlinx-kover/gradle-plugin/#kotlin-single-module-android-project to generate code coverage. Add the https://github.com/Kotlin/kotlinx-kover plugin to this project.

diff --git forkSrcPrefix/app/build.gradle.kts forkDstPrefix/app/build.gradle.kts
index cb8c49554536ffefbc215291b3db4d6716c77052..01d0f8d4554892030e07cd04d04319f8bf10f037 100644
--- forkSrcPrefix/app/build.gradle.kts
+++ forkDstPrefix/app/build.gradle.kts
@@ -190,6 +190,46 @@ ksp {
     arg("kotlin-inject-anvil-contributing-annotations", "com.slack.circuit.codegen.annotations.CircuitInject")
 }
 
+// Configure Kover for code coverage reports
+tasks.register("koverHtmlWithTitle") {
+    group = "Verification"
+    description = "Generates HTML coverage report with a custom title"
+    
+    dependsOn("koverHtmlReport")
+    
+    doLast {
+        val reportDir = layout.buildDirectory.dir("reports/kover/html").get().asFile
+        if (reportDir.exists()) {
+            // Find and update the HTML report title
+            val indexFile = File(reportDir, "index.html")
+            if (indexFile.exists()) {
+                var content = indexFile.readText()
+                content = content.replace("<title>Kover Report</title>", "<title>RemoteNotify Coverage Report</title>")
+                content = content.replace("<h1>Code Coverage Report</h1>", "<h1>RemoteNotify Coverage Report</h1>")
+                indexFile.writeText(content)
+                println("Updated HTML report title in ${indexFile.absolutePath}")
+            }
+        }
+    }
+}
+
+// Create a task that runs all Kover tasks for CI
+tasks.register("koverCiCheck") {
+    group = "Verification"
+    description = "Runs all Kover tasks for CI: test coverage, report generation and verification"
+    
+    // Depend on both HTML and XML reports as well as verification
+    dependsOn("koverHtmlWithTitle", "koverXmlReport", "koverVerify")
+
+    // Make sure this task always runs tests first
+    dependsOn("testDebugUnitTest", "testReleaseUnitTest")
+    
+    doLast {
+        println("Kover CI check completed successfully")
+        println("HTML Report: file://${layout.buildDirectory.dir("reports/kover/html").get().asFile.absolutePath}/index.html")
+        println("XML Report: file://${layout.buildDirectory.file("reports/kover/report.xml").get().asFile.absolutePath}")
+    }
+}
 
 // Helper function to get the current Git commit hash
 fun getGitCommitHash(): String {

@github-actions
Copy link

github-actions bot commented Mar 1, 2025

Code Coverage Report

View Coverage Report

@hossain-khan hossain-khan merged commit ec99430 into main Mar 1, 2025
4 checks passed
@hossain-khan hossain-khan deleted the add-kover branch March 1, 2025 20:41
@codecov-commenter
Copy link

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants