Hướng Dẫn Chi Tiết Tính Toán Độ Bao Phủ Mã Bằng Kover và Hiển Thị Badge Trên GitHub
Chào mừng bạn đến với bài viết hướng dẫn chuyên sâu về cách tính toán độ bao phủ mã cho dự án Kotlin của bạn bằng công cụ Kover. Trong bài viết này, chúng ta sẽ khám phá từng bước để không chỉ tính toán mã mà còn đẩy kết quả lên Gist bằng GitHub Actions và hiển thị badge tuyệt đẹp trên README của bạn. Hãy sẵn sàng để tăng tính chuyên nghiệp cho dự án của bạn! 🚀
Mục Tiêu Của Bài Viết
Bạn sẽ học được:
- Cách tính toán độ bao phủ mã bằng Kover
- Cách đẩy kết quả lên Gist thông qua GitHub Actions
- Cách hiển thị badge vào README để thể hiện thành quả của bạn
Hãy cùng bắt đầu hành trình lập trình tuyệt vời này! 🎉
Giới Thiệu Về Kover
JetBrains Kover là một plugin Gradle mạnh mẽ giúp tính toán độ bao phủ mã cho dự án Kotlin của bạn. Điểm mạnh của Kover là khả năng hoạt động mà không cần cấu hình phức tạp. Chỉ cần áp dụng plugin, bạn sẽ có một task koverReport
sẵn sàng để tạo ra báo cáo về độ bao phủ mã.
Bước 1: Cài Đặt Kover vào Dự Án
Để bắt đầu, mở file libs.versions.toml
và thêm đoạn mã sau:
[versions]
...
kover = "0.8.0"
[plugins]
...
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
Sau đó, bạn mở file build.gradle.kts
của module và thêm plugin Kover
:
plugins {
...
id(libs.plugins.kover.get().pluginId)
}
Điều này đảm bảo Kover có thể hoạt động trong dự án của bạn.
Bước 2: Tạo Task cho Kover
Bây giờ, tạo một task để tính toán độ bao phủ dòng từ file báo cáo report.xml
. Thêm đoạn mã vào build.gradle.kts
:
tasks.register("printLineCoverage") {
group = "verification"
dependsOn("koverXmlReport")
doLast {
val report = file("$projectDir/build/reports/kover/report.xml")
// Đọc file XML và lấy giá trị coverage
...
}
}
Bằng cách này, task này sẽ giúp bạn tính toán phần trăm độ bao phủ mã một cách dễ dàng.
Bước 3: Tạo Gist Để Lưu Kết Quả
Chúng ta cần tạo một Gist trên GitHub để lưu trữ kết quả của Kover:
- Truy cập vào Gists.
- Tạo Gist mới với file JSON, ví dụ đặt tên là
<yourproject>-coverage-badge.json
. - Lưu lại ID của Gist từ URL để sử dụng sau này.
Bước 4: Tạo Personal Access Token
Để cập nhật Gist, bạn cần tạo một Personal Access Token (PAT) với quyền gist
:
- Truy cập vào GitHub Settings.
- Tạo token mới và lưu lại token vào GitHub Secret với tên
GH_GIST_TOKEN
.
Bước 5: Tạo GitHub Action
Tạo một GitHub Action để tự động hóa quy trình cập nhật kết quả độ bao phủ:
- Tạo file
.github/workflows/coverage-badge.yml
với nội dung như sau:
name: Tạo Badge cho Code Coverage
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
...
Hãy chắc chắn cập nhật <Your Gist ID>
và các thông tin liên quan khác cho phù hợp.
Bước 6: Hiển Thị Badge Trong README
Cuối cùng, thêm badge vào README của bạn để khoe thành quả:

Hãy chắc chắn thay thế các thông tin <userId>
, <gits id>
và <file_gits_name>
cho đúng.
Kết Luận
Chúc mừng! Giờ đây, mỗi khi bạn push code mới lên nhánh main
, GitHub Actions sẽ tự động tính toán độ bao phủ mã và cập nhật kết quả lên Gist. Một giải pháp tự động hóa và tăng cường tính chuyên nghiệp cho dự án của bạn. Hãy thử nghiệm và tùy chỉnh để phù hợp nhất với nhu cầu của bạn!
Khám Phá Thêm
Nếu bạn muốn xem một dự án thực tế, hãy khám phá repository open-source của mình tại: blockfrost-kotlin-sdk.
source: viblo