Informacje o wersji testów zrzutów ekranu w widoku tworzenia

0.0.1-alpha16

W tej wersji wprowadziliśmy obsługę pakietów testowych AGP, ulepszenia raportu testowego HTML i poprawki błędów:

  • Integracja zestawów testów: dodaliśmy obsługę uruchamiania testów zrzutów ekranu podglądu Compose za pomocą zestawów testów wtyczki Androida do obsługi Gradle (AGP). Aby dowiedzieć się, jak skonfigurować i uruchomić zestawy testów zrzutów ekranu, przeczytaj artykuł Testowanie zrzutów ekranu za pomocą zestawów testów.
  • Ulepszenia raportu testu HTML: dodaliśmy kartę metadanych nagłówka, która zawiera szczegóły testu (nazwę, metodę, podgląd, wariant, pakiet i plakietkę stanu) oraz pole podsumowania błędów, które kategoryzuje błędy (np. brakujące obrazy referencyjne lub niezgodności wymiarów) i umożliwia szybkie kopiowanie do schowka.
  • Dynamiczne różnice wizualne: różnice wizualne korzystają teraz z ciągłego gradientu, który obejmuje subtelne wyróżnienia w przypadku niewielkich przesunięć pikseli i kontrastowe podkreślenia w przypadku dużych różnic. Dzięki temu zmiany w zagnieżdżonych komponentach nie są zasłaniane.

Ta wersja zawiera też następujące poprawki błędów:

Problem Opis
problem 513276596 Pomaga zapewnić, że błędy renderowania Layoutlib natychmiast powodują niepowodzenie testów zrzutów ekranu, zamiast powodować niepowodzenie bez powiadomienia lub tworzyć puste obrazy referencyjne.

0.0.1-alpha15

Ta wersja zawiera następujące poprawki błędów:

Problem Opis
problem 500417360 Rozwiązaliśmy problem z awarią inicjowania (NoClassDefFoundError) podczas uruchamiania podglądów w Kotlinie 2.1 lub nowszym z powodu braku zależności kotlin-stdlib w izolowanym module wczytywania klas w Layoutlib.
problem 384188032 Naprawiliśmy awarię renderowania podczas rozszerzania obiektu ViewHolder wewnątrz fabryki funkcji kompozycyjnej AndroidView.
problem 351302272 Rozwiązano problemy z wczytywaniem obiektów rysowalnych w podglądach, w których zasoby znajdują się w modułach projektu równorzędnego lub zależnego.
problem 482664893 Zadbano o to, aby zadania weryfikacji kończyły się niepowodzeniem, gdy testy zrzutów ekranu zgłaszają wyjątki, a nie kończyły się nieprawidłowo powodzeniem ze starym zrzutem ekranu.
problem 497675618 Obsługa instrumentacji klas funkcji kompozycyjnych przez agentów pokrycia JVM (np. JaCoCo).
problem 498545960 Usunięto z zrzutów stosu błędów konsoli JUnit wewnętrzne nazwy plików (np. ImageVerifier.kt), aby ułatwić debugowanie.
problem 385613865 Usunięto użycie ścieżek bezwzględnych w przypadku obrazów w pliku XML z wynikami testu i zastąpiono je ścieżkami względnymi.
problem 513276596 Zapewniliśmy, że błędy renderowania powodują niepowodzenie zadań testu zrzutu ekranu, a nie ciche przechodzenie testu z pustym zrzutem ekranu.
problem 340639802 Rozwiązano konflikty dotyczące metody podglądu, w których testy były nieprawidłowo dopasowywane do pasujących w pełni kwalifikowanych nazw metod w głównym zbiorze źródeł.

0.0.1-alpha14

Ta wersja zawiera następujące poprawki błędów i ulepszenia wydajności:

Problem Opis
problem 469819154 Naprawiliśmy wycieki pamięci w renderowaniu Compose.
problem 470058578 Usunęliśmy zawieszanie się interfejsu i błędy pamięci podczas aktualizowania obrazów referencyjnych.
problem 422412664 Naprawiono błędy „wiersz poleceń przekracza limity systemu operacyjnego” w systemie Windows i usłudze GitHub Actions.
problem 437223807 Rozwiązaliśmy problemy z rozpoznawaniem zasobów i komponentów w projektach wielomodułowych.
problem 464899800 Rozwiązaliśmy konflikt wtyczki Gradle spowodowany kolizją nazw w version.properties.
problem 482433854 Naprawiono błędy inicjowania w przypadku funkcji kompozycyjnych korzystających z kotlin-reflect lub serializacji.

0.0.1-alpha13

Ta wersja wprowadza:

  • Zgodność z pakietem JDK 17 lub nowszym.
  • Poprawki błędów i lepsza integracja z Androidem Studio.

0.0.1-alpha12

Ta wersja wprowadza:

  • Zgodność z wtyczką Androida do obsługi Gradle (AGP) w wersji 9.0.
  • Obsługa przeprowadzania testów zrzutów ekranu w JDK 24 i nowszych.
  • Możliwość skonfigurowania maksymalnego rozmiaru sterty.
  • Naprawiono błędy renderowania i zwiększono stabilność testów.
  • Ulepszyliśmy raportowanie, aby uwzględniało różnicę procentową i inne metadane związane z nowymi i referencyjnymi obrazami.

0.0.1-alpha11

Ta wersja wprowadza:

  • Zgodność z wtyczką Androida do obsługi Gradle (AGP) w wersji 8.13.
  • Dodano obsługę analizowania rysunków XML z wartościami dziesiętnymi niezależnie od ustawień regionalnych komputera hosta.
  • W przypadku maszyny hosta korzystającej z JDK 24 lub nowszego zostanie wybrana zgodna wersja JDK (11–23), o ile jest zainstalowana.

0.0.1-alpha10

Ta wersja wprowadza:

  • Od tej wersji musisz oznaczać wszystkie funkcje w wersji podglądowej adnotacją @PreviewTest. Podglądy bez adnotacji nie będą wykonywane.

  • Katalog obrazów referencyjnych został zmieniony z:{module}/src/{variant}/screenshotTest/reference na:{module}/src/screenshotTest{Variant}/reference. Dzięki temu wygenerowane obrazy referencyjne nie będą częścią kodu produkcyjnego, a struktura katalogu będzie zgodna z strukturą katalogu innych typów testów.

  • Zadanie {variant}PreviewScreenshotRender zostanie usunięte. Renderowanie obrazów zostało przeniesione do silnika testowego JUnit.

  • Zadanie update{Variant}ScreenshotTest porówna nowe obrazy renderowane z obrazami referencyjnymi przed aktualizacją. Aktualizuje tylko obrazy, w których różnice przekraczają określony próg. Usunięto flagę wiersza poleceń --updateFilter.

0.0.1-alpha06

Ta wersja wprowadza:

Próg różnicy obrazu: to nowe ustawienie globalnego progu umożliwia dokładniejszą kontrolę nad porównywaniem zrzutów ekranu. Aby skonfigurować, zaktualizuj plik build.gradle.kts modułu:

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

Ten próg będzie stosowany do wszystkich testów zrzutów ekranu zdefiniowanych w module.

  • Poprawki błędów: naprawiliśmy niektóre błędy renderowania w Compose i dodaliśmy obsługę pustych kompozycji.
  • Ulepszenia wydajności: zaktualizowano algorytm porównywania obrazów, aby działał szybciej.