Menerapkan cakupan kode dan menampilkannya dalam pipeline

Selesai

Cakupan kode mengukur persentase kode sumber yang dijalankan selama pengujian otomatis. Metrik ini membantu tim memahami efektivitas pengujian, mengidentifikasi area kode yang belum teruji, dan meningkatkan kualitas perangkat lunak. Menerapkan cakupan kode dalam alur CI/CD Anda memberikan visibilitas ke dalam kesenjangan pengujian dan membantu menjaga standar berkualitas tinggi.

Implementasi bervariasi di seluruh platform dan bahasa pemrograman, tetapi prinsip inti tetap konsisten. Mari kita jelajahi cara menerapkan cakupan kode di Azure Pipelines dan menampilkan hasil secara efektif.

Menerapkan cakupan kode di Azure Pipelines

Untuk proyek .NET (C#), menerapkan cakupan kode melibatkan beberapa langkah utama:

  1. Siapkan alat pengujian dan cakupan: Gunakan kerangka kerja pengujian yang mendukung analisis cakupan kode seperti NUnit, MSTest, atau xUnit untuk .NET. Integrasikan alat cakupan kode seperti Coverlet atau OpenCover ke dalam proyek Anda. Alat-alat ini dapat menghasilkan laporan cakupan kode dalam berbagai format yang kompatibel dengan Azure Pipelines.
  2. Mengonfigurasi Azure Pipelines: Di portal Azure DevOps, navigasikan ke proyek Azure DevOps Anda dan pilih alur tempat Anda ingin menambahkan cakupan kode. Edit konfigurasi alur dan tambahkan langkah-langkah untuk menginstal dependensi dan membangun proyek Anda.
  3. Tambahkan tugas cakupan kode: Tambahkan tugas ke alur untuk menjalankan pengujian dengan cakupan kode diaktifkan dan menghasilkan laporan cakupan. Gunakan parameter baris perintah yang tepat untuk alat penyelenggara pengujian Anda guna mengaktifkan analisis cakupan kode yang menyeluruh dan menghasilkan format keluaran untuk laporan cakupan.
  4. Menerbitkan laporan cakupan kode: Terbitkan laporan cakupan kode yang dihasilkan sebagai artefak atau melampirkannya ke eksekusi pipeline. Gunakan kemampuan penerbitan bawaan Azure Pipelines atau tugas kustom untuk mengunggah laporan cakupan ke Azure DevOps atau layanan eksternal.

Berikut adalah contoh alur yang mengilustrasikan pendekatan ini:

```yaml
trigger:
    - main
pool:
    vmImage: "windows-latest"
steps:
    - task: UseDotNet@2
        inputs:
            packageType: "sdk"
            version: "8.0.x"
    - script: dotnet restore
        displayName: "Restore Dependencies"
    - script: dotnet build --configuration Release
        displayName: "Build Solution"
    - script: dotnet test --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
        displayName: "Run Tests with Code Coverage"
    - task: PublishCodeCoverageResults@2
        inputs:
            summaryFileLocation: "$(Agent.TempDirectory)/**/*.xml"
            failIfCoverageEmpty: true
```

Alur ini menghasilkan laporan cakupan kode sebagai bagian dari proses build. Ini memungkinkan Anda meninjau dan menganalisis hasil cakupan di portal Azure DevOps. Untuk melakukan analisis yang lebih rinci, Anda dapat mengunduh artefak cakupan kode dan memeriksanya dengan menggunakan Visual Studio (saat menggunakan tugas Visual Studio Test) atau opsi khusus alat cakupan kode.

Menerapkan cakupan kode dengan GitHub Actions

Sebagai perbandingan, berikut cara menerapkan cakupan kode untuk proyek .NET (C#) menggunakan GitHub Actions:

  1. Siapkan alat pengujian dan cakupan: Seperti halnya Azure DevOps, gunakan kerangka kerja pengujian yang mendukung analisis cakupan kode. Verifikasi bahwa alat ini dapat menghasilkan laporan cakupan kode dalam format yang kompatibel dengan GitHub.
  2. Buat alur kerja GitHub Actions: Pada halaman repositori GitHub, navigasikan ke direktori .github/workflows . Buat file YAML baru (misalnya, ci.yml) untuk menentukan konfigurasi alur kerja Anda. Tentukan pemicu untuk alur kerja Anda, seperti permintaan tarik atau push ke cabang tertentu.
  3. Mengonfigurasi langkah-langkah alur kerja: Tentukan langkah-langkah dalam YAML alur kerja Anda untuk menyiapkan lingkungan, memulihkan dependensi, membangun proyek Anda, menjalankan pengujian, dan membuat laporan cakupan kode. Pastikan bahwa kode sumber proyek Anda, konfigurasi pengujian, dan dependensi yang diperlukan disertakan dalam repositori. Gunakan tindakan seperti tindakan/checkout untuk memeriksa repositori Anda, setup-dotnet untuk menyiapkan .NET Core SDK, dan coverallsapp/github-action atau codecov/codecov-action untuk mengunggah laporan cakupan kode.

Berikut adalah contoh alur kerja yang mengilustrasikan pendekatan ini:

```yaml
name: Code Coverage
on:
  pull_request:
    branches:
      - main
  push:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: "8.0.x"
      - name: Restore Dependencies
        run: dotnet restore
      - name: Build Solution
        run: dotnet build --configuration Release
      - name: Run Tests
        run: dotnet test --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
      - name: Upload Code Coverage Report
        uses: coverallsapp/github-action@v1
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
```

Alur kerja GitHub Actions ini akan secara otomatis menjalankan pengujian dan menghasilkan laporan cakupan kode setiap kali permintaan pull dibuat atau kode didorong ke cabang utama. Pastikan Anda memiliki izin dan token API yang diperlukan untuk mengunggah laporan cakupan kode ke layanan pihak ketiga seperti Coveralls atau Codecov.