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/referencena:{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}PreviewScreenshotRenderzostanie usunięte. Renderowanie obrazów zostało przeniesione do silnika testowego JUnit.Zadanie
update{Variant}ScreenshotTestporó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.