Note di rilascio dei test di anteprima di Crea anteprima

0.0.1-alpha16

Questa release introduce il supporto per le suite di test AGP, miglioramenti al report di test HTML e correzioni di bug:

  • Integrazione delle suite di test: è stato aggiunto il supporto per l'esecuzione di test degli screenshot di anteprima di Compose con le suite di test del plug-in Android per Gradle (AGP). Per scoprire come configurare ed eseguire le suite di test degli screenshot, consulta Test degli screenshot con le suite di test.
  • Miglioramenti del report di test HTML: è stata aggiunta una scheda di metadati dell'intestazione che mostra i dettagli dello scenario di test (nome, metodo, anteprima, variante, suite e badge di stato) e una casella di riepilogo degli errori che classifica gli errori (ad esempio immagini di riferimento mancanti o mancata corrispondenza delle dimensioni) con la funzionalità di copia rapida negli appunti.
  • Differenze visive dinamiche: le differenze visive ora utilizzano un gradiente continuo, da evidenziazioni sottili per spostamenti di pixel minori a enfasi ad alto contrasto per differenze maggiori, impedendo l'oscuramento delle modifiche ai componenti nidificati.

Questa release include anche le seguenti correzioni di bug:

Problema Descrizione
Problema n. 513276596 Contribuisci a garantire che gli errori di rendering di Layoutlib non superino immediatamente i test degli screenshot anziché non riuscire in modo silenzioso o creare immagini di riferimento vuote.

0.0.1-alpha15

Questa release include le seguenti correzioni di bug:

Problema Descrizione
Problema n. 500417360 È stato risolto un arresto anomalo dell'inizializzazione (NoClassDefFoundError) durante l'esecuzione delle anteprime con Kotlin 2.1+ a causa di una dipendenza kotlin-stdlib mancante nel caricatore di classi isolato del framework Layoutlib.
Problema n. 384188032 È stato corretto un arresto anomalo del rendering durante l'inflazione di un oggetto ViewHolder all'interno di una fabbrica di componenti componibili AndroidView.
Problema n. 351302272 Risolti gli errori di caricamento delle risorse drawable all'interno delle anteprime in cui le risorse risiedono in moduli di progetti dipendenti o correlati.
Problema n. 482664893 È stato garantito che le attività di convalida non vadano a buon fine in modo appropriato quando i test degli screenshot generano eccezioni, anziché riuscire in modo errato con uno screenshot obsoleto.
Problema n. 497675618 Strumentazione supportata delle classi componibili da parte degli agenti di copertura JVM (come JaCoCo).
Problema n. 498545960 Nomi di file interni rimossi (ad esempio, ImageVerifier.kt) dalle analisi dello stack degli errori della console JUnit per chiarire l'output di debug.
Problema n. 385613865 È stato rimosso l'utilizzo del percorso assoluto per le immagini nel file XML dei risultati del test, sostituendolo con percorsi relativi.
Problema n. 513276596 È stato garantito che gli errori di rendering non superino le attività di test degli screenshot, ma che vengano segnalati correttamente con uno screenshot vuoto.
Problema n. 340639802 Sono stati risolti i conflitti di risoluzione del metodo di anteprima in cui i test venivano abbinati in modo errato ai nomi dei metodi completi corrispondenti nel set di origine principale.

0.0.1-alpha14

Questa release include le seguenti correzioni di bug e miglioramenti delle prestazioni:

Problema Descrizione
Problema n. 469819154 Sono state corrette le perdite di memoria nel renderer Compose.
Problema n. 470058578 Sono stati corretti i blocchi dell'interfaccia utente e gli errori di memoria durante l'aggiornamento delle immagini di riferimento.
Problema n. 422412664 Sono stati corretti gli errori "La riga di comando supera i limiti del sistema operativo" su Windows e GitHub Actions.
Problema n. 437223807 Sono stati risolti i problemi di risoluzione di risorse e asset nei progetti multimodulo.
Problema n. 464899800 È stato corretto un conflitto del plug-in Gradle causato da una collisione di nomi in version.properties.
Problema n. 482433854 Sono stati corretti gli errori di inizializzazione per i composable che utilizzano kotlin-reflect o la serializzazione.

0.0.1-alpha13

Questa release introduce:

  • Compatibilità con JDK 17 o versioni successive.
  • Correzioni di bug e migliore integrazione con Android Studio.

0.0.1-alpha12

Questa release introduce:

  • Compatibilità con il plug-in Android per Gradle (AGP) 9.0.
  • Supporto per l'esecuzione di test degli screenshot su JDK 24 e versioni successive.
  • Supporto per la configurazione della dimensione massima dell'heap.
  • Corretti gli errori di rendering e migliorata la stabilità dei test.
  • È stato migliorato il reporting per includere la differenza percentuale e altri metadati relativi alle immagini nuove e di riferimento.

0.0.1-alpha11

Questa release introduce:

  • Compatibilità con il plug-in Android per Gradle (AGP) 8.13.
  • È stato aggiunto il supporto per l'analisi degli elementi grafici XML con valori decimali indipendentemente dalle impostazioni internazionali della macchina host.
  • Per una macchina host che utilizza JDK 24 o versioni successive, verrà selezionata una JDK compatibile (11-23), se ne è installata una.

0.0.1-alpha10

Questa release introduce:

  • A partire da questa versione, devi contrassegnare tutte le funzioni di anteprima con l'annotazione @PreviewTest. Le anteprime senza l'annotazione non verranno eseguite.

  • La directory delle immagini di riferimento è stata modificata da {module}/src/{variant}/screenshotTest/reference a {module}/src/screenshotTest{Variant}/reference. In questo modo, le immagini di riferimento generate non faranno parte del codice di produzione e saranno allineate alla struttura delle directory di altri tipi di test.

  • L'attività {variant}PreviewScreenshotRender viene rimossa. Il rendering delle immagini viene migrato nel motore di test JUnit.

  • L'attività update{Variant}ScreenshotTest confronta le nuove immagini di rendering con le immagini di riferimento prima dell'aggiornamento. Aggiornerà solo le immagini che presentano differenze superiori a una soglia specificata. Il flag della riga di comando --updateFilter è stato rimosso.

0.0.1-alpha06

Questa release introduce:

Soglia di differenza immagine: questa nuova impostazione della soglia globale ti consente di avere un controllo più preciso sui confronti degli screenshot. Per configurare, aggiorna il file build.gradle.kts del modulo:

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

Questa soglia verrà applicata a tutti i test degli screenshot definiti nel modulo.

  • Correzioni di bug: alcuni bug del renderer di Compose e aggiunta del supporto per la composizione vuota.
  • Miglioramenti delle prestazioni: l'algoritmo di differenziazione delle immagini è stato aggiornato per essere più veloce.