Compose 預覽版螢幕截圖測試版本發行說明

0.0.1-alpha15

這個版本修正了下列錯誤:

問題 說明
問題 #500417360 修正問題:使用 Kotlin 2.1 以上版本執行預覽時,由於 Layoutlib 架構的獨立類別載入器缺少 kotlin-stdlib 依附元件,因此會發生初始化當機 (NoClassDefFoundError)。
問題 #384188032 修正在可組合函式 AndroidView 工廠內加載 ViewHolder 物件時,轉譯異常終止的問題。
問題 #351302272 解決預覽畫面中可繪製資源載入失敗的問題,這些資源位於同層級或依附的專案模組中。
問題 #482664893 確保螢幕截圖測試擲回例外狀況時,驗證工作會適當失敗,而不是使用過時的螢幕截圖錯誤地成功。
問題 #497675618 JVM 涵蓋範圍代理程式 (例如 JaCoCo) 支援可組合類別的檢測。
問題 #498545960 從 JUnit 控制台錯誤堆疊追蹤中移除內部檔案名稱 (例如 ImageVerifier.kt),以釐清偵錯輸出內容。
問題 #385613865 已移除測試結果 XML 檔案中圖片的絕對路徑用法,並改用相對路徑。
問題 #513276596 確保轉譯失敗時,螢幕截圖測試工作會正確失敗,而不是以空白螢幕截圖無聲通過。
問題 #340639802 解決預覽方法解析衝突,避免測試與主要來源集中的相符完整方法名稱錯誤比對。

0.0.1-alpha14

這個版本包含下列錯誤修正和效能提升:

問題 說明
問題 #469819154 修正 Compose 轉譯器中的記憶體流失問題。
問題 #470058578 修正更新參考圖片時,使用者介面凍結和記憶體錯誤的問題。
問題 #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.1 相容。
  • 開始支援剖析含有十進位值的 XML 可繪項目,不受主機語言代碼影響。
  • 如果主體機器使用 JDK 24 以上版本,系統會選取相容的 JDK (11-23),前提是已安裝這類 JDK。

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 算繪器錯誤,並新增對空白 Compose 的支援。
  • 效能提升:更新了圖片差異演算法,速度更快。