Catatan Rilis Pengujian Screenshot Pratinjau Compose

0.0.1-alpha16

Rilis ini memperkenalkan dukungan untuk rangkaian pengujian AGP, peningkatan laporan pengujian HTML, dan perbaikan bug:

  • Integrasi rangkaian pengujian: Menambahkan dukungan untuk menjalankan pengujian screenshot pratinjau Compose dengan rangkaian pengujian Plugin Android Gradle (AGP). Untuk mempelajari cara mengonfigurasi dan menjalankan rangkaian pengujian screenshot, lihat Pengujian screenshot dengan rangkaian pengujian.
  • Peningkatan laporan pengujian HTML: Menambahkan kartu metadata header yang menampilkan detail kasus pengujian (nama, metode, pratinjau, varian, rangkaian, dan badge status) serta kotak ringkasan error yang mengategorikan kegagalan (seperti gambar referensi yang tidak ada atau ketidakcocokan dimensi) dengan fungsi salin cepat ke papan klip.
  • Perbedaan visual dinamis: Perbedaan visual kini menggunakan gradien berkelanjutan dari sorotan halus untuk pergeseran piksel kecil hingga penekanan kontras tinggi untuk perbedaan besar, sehingga mencegah perubahan komponen bertingkat terhalang.

Rilis ini juga mencakup perbaikan bug berikut:

Masalah Deskripsi
Masalah #513276596 Membantu memastikan bahwa error rendering Layoutlib langsung gagal dalam pengujian screenshot, bukan gagal secara diam-diam atau membuat gambar referensi kosong.

0.0.1-alpha15

Rilis ini mencakup perbaikan bug berikut:

Masalah Deskripsi
masalah #500417360 Memperbaiki error inisialisasi (NoClassDefFoundError) saat menjalankan pratinjau dengan Kotlin 2.1+ karena kurangnya dependensi kotlin-stdlib di pemuat class terisolasi framework Layoutlib.
masalah #384188032 Memperbaiki error rendering saat meng-inflate objek ViewHolder di dalam factory Composable AndroidView.
masalah #351302272 Mengatasi kegagalan pemuatan resource drawable di dalam pratinjau tempat resource berada di modul project turunan atau dependen.
masalah #482664893 Memastikan bahwa tugas validasi gagal dengan tepat saat pengujian screenshot memunculkan pengecualian, bukan berhasil secara keliru dengan screenshot yang sudah tidak berlaku.
Masalah #497675618 Mendukung instrumentasi class composable oleh agen cakupan JVM (seperti JaCoCo).
Masalah #498545960 Nama file internal yang dihapus (misalnya, ImageVerifier.kt) dari stack trace error konsol JUnit untuk memperjelas output proses debug.
Masalah #385613865 Menghapus penggunaan jalur absolut untuk gambar dalam file XML hasil pengujian, dan menggantinya dengan jalur relatif.
Masalah #513276596 Memastikan kegagalan rendering dengan benar menggagalkan tugas pengujian screenshot, bukan meneruskan secara diam-diam dengan screenshot kosong.
Masalah #340639802 Menyelesaikan konflik penyelesaian metode pratinjau saat pengujian salah dicocokkan dengan nama metode yang sepenuhnya memenuhi syarat yang cocok di set sumber utama.

0.0.1-alpha14

Rilis ini mencakup perbaikan bug dan peningkatan performa berikut:

Masalah Deskripsi
Masalah #469819154 Memperbaiki kebocoran memori di perender Compose.
masalah #470058578 Memperbaiki masalah UI yang berhenti berfungsi dan error memori saat memperbarui gambar referensi.
masalah #422412664 Memperbaiki error "command line melampaui batas sistem operasi" di Windows dan GitHub Actions.
masalah #437223807 Memperbaiki masalah resolusi aset dan resource dalam project multi-modul.
masalah #464899800 Memperbaiki konflik plugin Gradle yang disebabkan oleh tabrakan penamaan di version.properties.
masalah #482433854 Memperbaiki error inisialisasi untuk composable menggunakan kotlin-reflect atau serialisasi.

0.0.1-alpha13

Rilis ini memperkenalkan:

  • Kompatibilitas dengan JDK 17 atau yang lebih baru.
  • Perbaikan bug dan peningkatan integrasi dengan Android Studio.

0.0.1-alpha12

Rilis ini memperkenalkan:

  • Kompatibilitas dengan Plugin Android Gradle (AGP) 9.0.
  • Dukungan untuk menjalankan uji screenshot di JDK 24 dan yang lebih tinggi.
  • Dukungan untuk mengonfigurasi ukuran heap maksimum.
  • Memperbaiki kegagalan rendering dan meningkatkan stabilitas pengujian.
  • Meningkatkan kualitas pelaporan untuk menyertakan perbedaan persentase dan metadata lainnya yang terkait dengan gambar baru dan rujukan.

0.0.1-alpha11

Rilis ini memperkenalkan:

  • Kompatibilitas dengan Plugin Android Gradle (AGP) 8.13.
  • Menambahkan dukungan untuk mengurai drawable XML dengan nilai desimal, terlepas dari lokalitas mesin host.
  • Untuk mesin host yang menggunakan JDK 24 atau yang lebih tinggi, JDK yang kompatibel (11-23) akan diambil, asalkan JDK tersebut diinstal.

0.0.1-alpha10

Rilis ini memperkenalkan:

  • Mulai versi ini, Anda harus menandai semua fungsi pratinjau dengan anotasi @PreviewTest. Pratinjau tanpa anotasi tidak akan dieksekusi.

  • Direktori gambar referensi diubah dari {module}/src/{variant}/screenshotTest/reference menjadi {module}/src/screenshotTest{Variant}/reference. Hal ini dilakukan untuk memastikan gambar referensi yang dihasilkan tidak menjadi bagian dari kode produksi, dan agar selaras dengan struktur direktori jenis pengujian lainnya.

  • Tugas {variant}PreviewScreenshotRender dihapus. Rendering gambar dimigrasikan ke JUnit Test Engine.

  • Tugas update{Variant}ScreenshotTest akan membandingkan gambar rendering baru dengan gambar referensi sebelum memperbarui. Fitur ini hanya akan memperbarui gambar yang memiliki perbedaan lebih besar dari nilai minimum yang ditentukan. Flag command line --updateFilter telah dihapus.

0.0.1-alpha06

Rilis ini memperkenalkan:

Ambang Batas Perbedaan Gambar: Setelan ambang batas global baru ini memungkinkan Anda mendapatkan kontrol yang lebih baik atas perbandingan screenshot. Untuk mengonfigurasi, perbarui build.gradle.kts modul Anda:

    testOptions {
        screenshotTests {
            imageDifferenceThreshold = 0.0001f // 0.01%
        }
    }

Nilai minimum ini akan diterapkan ke semua pengujian screenshot yang ditentukan dalam modul.

  • Perbaikan Bug: Beberapa bug Compose Renderer dan menambahkan dukungan untuk compose kosong.
  • Peningkatan Performa: Algoritma perbedaan gambar diperbarui agar lebih cepat.