झलक दिखाने की सुविधा के स्क्रीनशॉट की टेस्टिंग से जुड़ी रिलीज़ नोट कंपोज़ करें

0.0.1-alpha15

इस रिलीज़ में, ये गड़बड़ियां ठीक की गई हैं:

समस्या ब्यौरा
समस्या #500417360 Kotlin 2.1+ के साथ झलकियां देखने पर, Layoutlib फ़्रेमवर्क के आइसोलेटेड क्लास लोडर में kotlin-stdlib डिपेंडेंसी मौजूद न होने की वजह से, इनिशियलाइज़ेशन क्रैश (NoClassDefFoundError) होने की समस्या ठीक की गई.
समस्या #384188032 Composable AndroidView फ़ैक्ट्री के अंदर ViewHolder ऑब्जेक्ट को बड़ा करते समय रेंडरिंग क्रैश होने की समस्या ठीक की गई.
समस्या #351302272 प्रीव्यू में ड्रॉएबल रिसॉर्स लोड न होने की समस्याओं को ठीक किया गया है. इन समस्याओं में, रिसॉर्स को सिबलिंग या डिपेंडेंट प्रोजेक्ट मॉड्यूल में रखा जाता है.
समस्या #482664893 यह पक्का किया गया है कि स्क्रीनशॉट टेस्ट में अपवाद होने पर, पुष्टि करने से जुड़े टास्क सही तरीके से पूरे न हों. ऐसा इसलिए किया गया है, ताकि पुराने स्क्रीनशॉट के साथ टास्क गलत तरीके से पूरे न हों.
समस्या #497675618 JVM कवरेज एजेंट (जैसे, JaCoCo) की मदद से, कंपोज़ेबल क्लास के इंस्ट्रुमेंटेशन की सुविधा जोड़ी गई.
समस्या #498545960 डीबग करने से जुड़े आउटपुट को बेहतर बनाने के लिए, JUnit कंसोल की गड़बड़ी के स्टैक ट्रेस से, संगठन में काम करने वाले लोगों के लिए बनाए गए फ़ाइलों के नाम (उदाहरण के लिए, ImageVerifier.kt) हटा दिए गए हैं.
समस्या #385613865 टेस्ट के नतीजों वाली एक्सएमएल फ़ाइल में मौजूद इमेज के लिए, ऐब्सलूट पाथ का इस्तेमाल करने की सुविधा हटा दी गई है. अब इनकी जगह रिलेटिव पाथ का इस्तेमाल किया जाएगा.
समस्या #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.13 के साथ काम करता है.
  • होस्ट मशीन की स्थान-भाषा के बावजूद, दशमलव वैल्यू वाले एक्सएमएल ड्रॉएबल को पार्स करने की सुविधा जोड़ी गई.
  • JDK 24 या इसके बाद के वर्शन का इस्तेमाल करने वाली होस्ट मशीन के लिए, JDK (11-23) का इस्तेमाल किया जाएगा. हालांकि, इसके लिए यह ज़रूरी है कि JDK (11-23) इंस्टॉल किया गया हो.

0.0.1-alpha10

इस रिलीज़ में ये सुविधाएं जोड़ी गई हैं:

  • इस वर्शन से, आपको अपने सभी प्रीव्यू फ़ंक्शन को @PreviewTest एनोटेशन के साथ मार्क करना होगा. एनोटेशन के बिना झलकें नहीं दिखाई जाएंगी.

  • रेफ़रंस इमेज डायरेक्ट्री को {module}/src/{variant}/screenshotTest/reference से बदलकर {module}/src/screenshotTest{Variant}/reference कर दिया गया है. ऐसा इसलिए किया जाता है, ताकि जनरेट की गई रेफ़रंस इमेज, प्रोडक्शन कोड का हिस्सा न बनें. साथ ही, यह भी पक्का किया जा सके कि वे अन्य टेस्ट टाइप के डायरेक्ट्री स्ट्रक्चर के साथ अलाइन हों.

  • {variant}PreviewScreenshotRender टास्क को हटा दिया गया है. इमेज रेंडर करने की सुविधा को JUnit Test Engine में माइग्रेट कर दिया गया है.

  • update{Variant}ScreenshotTest टास्क में, अपडेट करने से पहले रेंडर की गई नई इमेज की तुलना रेफ़रंस इमेज से की जाएगी. यह सिर्फ़ उन इमेज को अपडेट करेगा जिनमें तय सीमा से ज़्यादा अंतर है. --updateFilter कमांड-लाइन फ़्लैग को हटा दिया गया है.

0.0.1-alpha06

इस रिलीज़ में ये सुविधाएं जोड़ी गई हैं:

इमेज के अंतर का थ्रेशोल्ड: इस नई ग्लोबल थ्रेशोल्ड सेटिंग की मदद से, स्क्रीनशॉट की तुलना को बेहतर तरीके से कंट्रोल किया जा सकेगा. कॉन्फ़िगर करने के लिए, अपने मॉड्यूल की build.gradle.kts फ़ाइल को अपडेट करें:

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

यह थ्रेशोल्ड, मॉड्यूल में तय की गई सभी स्क्रीनशॉट जांचों पर लागू होगा.

  • गड़बड़ियां ठीक की गईं: Compose Renderer से जुड़ी कुछ गड़बड़ियां ठीक की गईं. साथ ही, खाली कंपोज़ के लिए सहायता जोड़ी गई.
  • परफ़ॉर्मेंस में सुधार: इमेज की तुलना करने वाले एल्गोरिदम को अपडेट किया गया है, ताकि वह तेज़ी से काम कर सके.