Compose プレビューのスクリーンショット テスト リリースノート

0.0.1-alpha15

このリリースには、次のバグ修正が含まれています。

事象 説明
問題 #500417360 Layoutlib フレームワークの分離されたクラスローダで kotlin-stdlib 依存関係が欠落しているため、Kotlin 2.1 以降でプレビューを実行すると初期化クラッシュ(NoClassDefFoundError)が発生する問題を修正しました。
問題 #384188032 コンポーザブル AndroidView ファクトリ内で ViewHolder オブジェクトをインフレートする際のレンダリング クラッシュを修正しました。
問題 #351302272 リソースが兄弟または依存プロジェクト モジュールにあるプレビュー内で、ドローアブル リソースの読み込みが失敗する問題を解決しました。
問題 #482664893 スクリーンショット テストで例外がスローされた場合に、検証タスクが古いスクリーンショットで誤って成功するのではなく、適切に失敗するようにしました。
問題 #497675618 JVM カバレッジ エージェント(JaCoCo など)によるコンポーザブル クラスのインストゥルメンテーションをサポート。
問題 #498545960 デバッグ出力を明確にするため、JUnit コンソール エラーのスタック トレースから内部ファイル名(ImageVerifier.kt など)を削除しました。
問題 #385613865 テスト結果の XML ファイル内の画像で絶対パスの使用を削除し、相対パスに置き換えました。
問題 #513276596 レンダリングの失敗が、空白のスクリーンショットでサイレントに合格するのではなく、スクリーンショット テストタスクを正しく失敗させるようにしました。
問題 #340639802 テストがメイン ソースセットの完全修飾メソッド名と誤って一致していたプレビュー メソッド解決の競合を解決しました。

0.0.1-alpha14

このリリースには、次のバグの修正とパフォーマンスの改善が含まれています。

事象 説明
問題 #469819154 Compose レンダラでのメモリリークを修正しました。
問題 #470058578 参照画像を更新する際の UI のフリーズとメモリ エラーを修正しました。
問題 #422412664 Windows と GitHub Actions で「コマンドラインがオペレーティング システムの制限を超えています」というエラーを修正しました。
問題 #437223807 マルチモジュール プロジェクトのリソースとアセットの解決に関する問題を修正しました。
問題 #464899800 version.properties の命名の衝突によって発生する Gradle プラグインの競合を修正しました。
問題 #482433854 kotlin-reflect またはシリアル化を使用するコンポーザブルの初期化エラーを修正しました。

0.0.1-alpha13

このリリースでの新機能

  • JDK 17 以降との互換性。
  • バグの修正と Android Studio との統合の改善。

0.0.1-alpha12

このリリースでの新機能

  • Android Gradle プラグイン(AGP)9.0 との互換性。
  • JDK 24 以降でスクリーンショット テストを実行するためのサポート。
  • 最大ヒープサイズを構成するためのサポート。
  • レンダリングの失敗を修正し、テストの安定性を改善しました。
  • レポートを強化し、新しい画像と参照画像に関連する差の割合などのメタデータを含めるようにしました。

0.0.1-alpha11

このリリースでの新機能

  • Android Gradle プラグイン(AGP)8.13 との互換性。
  • ホストマシンのロケールに関係なく、10 進数値を含む XML ドローアブルを解析するサポートを追加しました。
  • JDK 24 以降を使用するホストマシンでは、互換性のある JDK(11 ~ 23)がインストールされていれば、それが選択されます。

0.0.1-alpha10

このリリースでの新機能

  • このバージョン以降では、プレビュー関数をすべて @PreviewTest アノテーションでマークする必要があります。アノテーションのないプレビューは実行されません。

  • 参照画像ディレクトリが {module}/src/{variant}/screenshotTest/reference から {module}/src/screenshotTest{Variant}/reference に変更されました。これは、生成された参照画像が本番環境コードの一部にならないようにするためと、他のテストタイプのディレクトリ構造に合わせるためです。

  • {variant}PreviewScreenshotRender タスクが削除されます。画像レンダリングが JUnit テストエンジンに移行されました。

  • update{Variant}ScreenshotTest タスクは、更新前に新しいレンダリング画像をリファレンス画像と比較します。指定されたしきい値を超える差分がある画像のみが更新されます。--updateFilter コマンドライン フラグが削除されました。

0.0.1-alpha06

このリリースでの新機能

画像差分しきい値: この新しいグローバルしきい値設定により、スクリーンショットの比較をより細かく制御できるようになります。構成するには、モジュールの build.gradle.kts を更新します。

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

このしきい値は、モジュールで定義されているすべてのスクリーンショット テストに適用されます。

  • バグの修正: Compose Renderer のバグを修正し、空の Compose のサポートを追加しました。
  • パフォーマンスの強化: 画像の差分アルゴリズムが高速化されました。