Versionshinweise für Screenshot-Tests für Compose-Vorschau

0.0.1-alpha16

In diesem Release werden AGP-Testsuiten unterstützt, HTML-Testberichte verbessert und Fehler behoben:

  • Integration von Test-Suites: Es wurde Unterstützung für das Ausführen von Screenshot-Tests für Compose-Vorschauen mit Android-Gradle-Plug-in-Test-Suites hinzugefügt. Informationen zum Konfigurieren und Ausführen von Screenshot-Testsuiten finden Sie unter Screenshot-Tests mit Testsuiten.
  • Verbesserungen am HTML-Testbericht: Es wurde eine Kopfzeilen-Metadatenkarte mit Testlaufdetails (Name, Methode, Vorschau, Variante, Suite und Statusbadge) sowie ein Fehlerzusammenfassungsfeld hinzugefügt, in dem Fehler (z. B. fehlende Referenzbilder oder Dimensionsabweichungen) kategorisiert werden. Außerdem gibt es eine Funktion zum schnellen Kopieren in die Zwischenablage.
  • Dynamische visuelle Unterschiede: Bei visuellen Unterschieden wird jetzt ein kontinuierlicher Farbverlauf verwendet, der von subtilen Hervorhebungen für geringfügige Pixelverschiebungen bis hin zu kontrastreichen Hervorhebungen für größere Unterschiede reicht. So wird verhindert, dass Änderungen an verschachtelten Komponenten verdeckt werden.

Diese Version enthält außerdem die folgenden Fehlerkorrekturen:

Problem Beschreibung
Problem 513276596 Layoutlib-Rendering-Fehler führen sofort zu einem Fehler bei Screenshot-Tests, anstatt dass sie stillschweigend ignoriert werden oder leere Referenzbilder erstellt werden.

0.0.1-alpha15

Diese Version enthält die folgenden Fehlerkorrekturen:

Problem Beschreibung
Problem 500417360 Ein Initialisierungsabsturz (NoClassDefFoundError) wurde behoben, der beim Ausführen von Vorschauen mit Kotlin 2.1+ aufgrund einer fehlenden kotlin-stdlib-Abhängigkeit im isolierten Klassenlader des Layoutlib-Frameworks auftrat.
Problem 384188032 Ein Rendering-Absturz beim Instanziieren eines ViewHolder-Objekts in einer Composable-AndroidView-Factory wurde behoben.
Problem 351302272 Es wurden Fehler beim Laden von Drawable-Ressourcen in Vorschauen behoben, bei denen sich Ressourcen in gleichgeordneten oder abhängigen Projektmodulen befinden.
Problem 482664893 Es wurde dafür gesorgt, dass Validierungsaufgaben ordnungsgemäß fehlschlagen, wenn bei Screenshot-Tests Ausnahmen auftreten, anstatt fälschlicherweise mit einem alten Screenshot erfolgreich zu sein.
Problem 497675618 Unterstützung der Instrumentierung von zusammensetzbaren Klassen durch JVM-Coverage-Agents (z. B. JaCoCo).
Problem 498545960 Gekürzte interne Dateinamen (z. B. ImageVerifier.kt) aus JUnit-Konsolenfehler-Stacktraces, um die Debugging-Ausgabe zu verdeutlichen.
Problem 385613865 Die Verwendung absoluter Pfade für Bilder in der XML-Datei mit den Testergebnissen wurde entfernt und durch relative Pfade ersetzt.
Problem 513276596 Rendering-Fehler führen jetzt dazu, dass die Screenshot-Testaufgaben fehlschlagen, anstatt stillschweigend mit einem leeren Screenshot bestanden zu werden.
Problem 340639802 Es wurden Konflikte bei der Auflösung von Vorschau-Methoden behoben, bei denen Tests fälschlicherweise mit übereinstimmenden vollqualifizierten Methodennamen im Haupt-Sourceset abgeglichen wurden.

0.0.1-alpha14

Diese Version enthält die folgenden Fehlerkorrekturen und Leistungsverbesserungen:

Problem Beschreibung
Problem 469819154 Speicherlecks im Compose-Renderer wurden behoben.
Problem 470058578 Es wurden Fehler behoben, die zu einem Einfrieren der Benutzeroberfläche und zu Speicherfehlern beim Aktualisieren von Referenzbildern geführt haben.
Problem 422412664 Fehler „Befehlszeile überschreitet Betriebssystemlimits“ unter Windows und GitHub Actions behoben.
Problem 437223807 Probleme mit der Auflösung von Ressourcen und Assets in Projekten mit mehreren Modulen behoben.
Problem 464899800 Ein Gradle-Plug-in-Konflikt wurde behoben, der durch eine Namensüberschneidung in version.properties verursacht wurde.
Problem 482433854 Es wurden Initialisierungsfehler für Composables behoben, die kotlin-reflect oder die Serialisierung verwenden.

0.0.1-alpha13

In dieser Version ist u. a. Folgendes neu:

  • Kompatibilität mit JDK 17 oder höher
  • Fehlerkorrekturen und verbesserte Integration in Android Studio.

0.0.1-alpha12

In dieser Version ist u. a. Folgendes neu:

  • Kompatibilität mit Android-Gradle-Plug-in (AGP) 9.0.
  • Unterstützung für das Ausführen von Screenshot-Tests mit JDK 24 und höher.
  • Unterstützung für die Konfiguration der maximalen Heap-Größe.
  • Es wurden Rendering-Fehler behoben und die Teststabilität wurde verbessert.
  • Die Berichterstellung wurde verbessert und enthält jetzt die prozentuale Differenz und andere Metadaten zu neuen und Referenzbildern.

0.0.1-alpha11

In dieser Version ist u. a. Folgendes neu:

  • Kompatibilität mit dem Android-Gradle-Plug-in (AGP) 8.13.
  • Unterstützung für das Parsen von XML-Drawables mit Dezimalwerten unabhängig von der Spracheinstellung des Hostcomputers hinzugefügt.
  • Bei einem Hostcomputer mit JDK 24 oder höher wird ein kompatibles JDK (11–23) ausgewählt, sofern eines installiert ist.

0.0.1-alpha10

In dieser Version ist u. a. Folgendes neu:

  • Ab dieser Version müssen Sie alle Preview-Funktionen mit der Annotation @PreviewTest kennzeichnen. Vorschauen ohne die Anmerkung werden nicht ausgeführt.

  • Das Verzeichnis für Referenzbilder wurde von {module}/src/{variant}/screenshotTest/reference in {module}/src/screenshotTest{Variant}/reference geändert. So wird sichergestellt, dass die generierten Referenzbilder nicht Teil des Produktionscodes sind, und die Verzeichnisstruktur anderer Testtypen wird eingehalten.

  • Die Aufgabe {variant}PreviewScreenshotRender wird entfernt. Das Bildrendering wird in die JUnit Test Engine migriert.

  • Bei der Aufgabe update{Variant}ScreenshotTest werden neue Rendering-Bilder mit Referenzbildern verglichen, bevor sie aktualisiert werden. Es werden nur Bilder aktualisiert, die Unterschiede aufweisen, die einen bestimmten Schwellenwert überschreiten. Das Befehlszeilen-Flag --updateFilter wurde entfernt.

0.0.1-alpha06

In dieser Version ist u. a. Folgendes neu:

Schwellenwert für Bildunterschiede: Mit dieser neuen globalen Schwellenwerteinstellung können Sie Screenshot-Vergleiche genauer steuern. So konfigurieren Sie die Datei „build.gradle.kts“ Ihres Moduls:

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

Dieser Grenzwert wird auf alle im Modul definierten Screenshot-Tests angewendet.

  • Fehlerkorrekturen: Einige Fehler im Compose-Renderer wurden behoben und es wurde Unterstützung für leere Compose-Elemente hinzugefügt.
  • Leistungsverbesserungen: Der Algorithmus für den Bildvergleich wurde aktualisiert, um schneller zu sein.