0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

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

Đăng vào 1 tuần trước

• 3 phút đọc

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 Actionshiể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:

Copy
[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:

Copy
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:

Copy
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:

  1. Truy cập vào Gists.
  2. Tạo Gist mới với file JSON, ví dụ đặt tên là <yourproject>-coverage-badge.json.
  3. 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:

  1. Truy cập vào GitHub Settings.
  2. 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ủ:

  1. Tạo file .github/workflows/coverage-badge.yml với nội dung như sau:
Copy
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ả:

Copy
![coverage badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/<userId>/<gits id>/raw/<file_gits_name>.json)

Hãy chắc chắn thay thế các thông tin <userId>, <gits id><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

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào