ملاحظات إصدار أداة "اختبار لقطات الشاشة لمعاينة Compose"

0.0.1‎-alpha16

يتضمّن هذا الإصدار إتاحة حِزم اختبار Android Gradle Plugin، وتحسينات على تقرير اختبار HTML، وإصلاحات للأخطاء:

  • دمج حِزم الاختبار: تمت إضافة إمكانية تنفيذ اختبارات لقطات الشاشة لمعاينة Compose باستخدام حِزم الاختبار في المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP). للتعرّف على كيفية إعداد مجموعات اختبارات لقطات الشاشة وتنفيذها، يمكنك الاطّلاع على اختبار لقطات الشاشة باستخدام مجموعات الاختبارات.
  • تحسينات على تقرير اختبار HTML: تمت إضافة بطاقة بيانات وصفية للرأس تعرض تفاصيل حالة الاختبار (الاسم والطريقة والمعاينة والخيارات والمجموعة وشارة الحالة) ومربّع ملخّص الأخطاء الذي يصنّف حالات التعذّر (مثل الصور المرجعية غير المتوفّرة أو عدم تطابق الأبعاد) مع إمكانية النسخ السريع إلى الحافظة.
  • الاختلافات المرئية الديناميكية: تستخدم الاختلافات المرئية الآن تدرّجًا مستمرًا من التمييز الدقيق لتغييرات البكسل الطفيفة إلى التمييز العالي التباين للاختلافات الكبيرة، ما يمنع إخفاء التغييرات في المكوّنات المتداخلة.

يتضمّن هذا الإصدار أيضًا إصلاحات الأخطاء التالية:

المشكلة الوصف
issue #513276596 تساعد هذه الميزة في ضمان أنّ أخطاء العرض في Layoutlib تؤدي إلى إيقاف اختبارات لقطات الشاشة على الفور بدلاً من إيقافها بدون إشعار أو إنشاء صور مرجعية فارغة.

0.0.1‎-alpha15

يتضمّن هذا الإصدار إصلاحات الأخطاء التالية:

المشكلة الوصف
المشكلة رقم 500417360 تم إصلاح عُطل في عملية الإعداد (NoClassDefFoundError) عند تشغيل المعاينات باستخدام الإصدار 2.1 أو الإصدارات الأحدث من Kotlin بسبب عدم توفّر الاعتمادية kotlin-stdlib في أداة تحميل الفئات المعزولة لإطار عمل Layoutlib.
المشكلة رقم ‎384188032 تم إصلاح عُطل في العرض عند إنشاء عنصر ViewHolder داخل مصنع AndroidView قابل للإنشاء.
issue #351302272 تم حلّ المشاكل المتعلّقة بتعذُّر تحميل موارد الرسومات القابلة للرسم داخل المعاينات التي تتضمّن موارد في وحدات مشاريع تابعة أو مرتبطة.
المشكلة رقم 482664893 تم التأكّد من أنّ مهام التحقّق لا تنجح بشكل غير صحيح مع لقطة شاشة قديمة، بل تفشل بشكل صحيح عندما تُظهر اختبارات لقطات الشاشة استثناءات.
المشكلة رقم 497675618 إتاحة إمكانية قياس مدى توفّر فئات قابلة للإنشاء من خلال أدوات قياس مدى توفّر JVM (مثل JaCoCo)
المشكلة رقم 498545960 تمت إزالة أسماء الملفات الداخلية المختصرة (مثل ImageVerifier.kt) من عمليات تتبُّع تسلسُل استدعاء الدوال البرمجية لأخطاء وحدة تحكّم JUnit لتوضيح ناتج تصحيح الأخطاء.
المشكلة رقم 385613865 تمت إزالة استخدام المسار المطلق للصور في ملف XML الخاص بنتائج الاختبار، واستبداله بالمسارات النسبية.
issue #513276596 تم التأكّد من أنّ حالات تعذُّر العرض تؤدي إلى إيقاف مهام اختبار لقطات الشاشة بشكل صحيح بدلاً من إكمالها بدون تنبيه مع عرض لقطة شاشة فارغة.
المشكلة رقم ‎340639802 تم حلّ تعارضات تحديد طريقة المعاينة حيث تمّت مطابقة الاختبارات بشكل غير صحيح مع أسماء الطرق المؤهَّلة بالكامل في مجموعة المصادر الرئيسية.

0.0.1‎-alpha14

يتضمّن هذا الإصدار إصلاحات للأخطاء وتحسينات في الأداء، وهي:

المشكلة الوصف
المشكلة رقم 469819154 تم إصلاح تسربات الذاكرة في أداة العرض Compose.
المشكلة رقم ‎470058578 تم إصلاح مشكلة توقّف واجهة المستخدم وأخطاء الذاكرة عند تعديل الصور المرجعية.
المشكلة رقم 422412664 تم إصلاح أخطاء "تجاوز سطر الأوامر لحدود نظام التشغيل" على نظام التشغيل Windows وGitHub Actions.
issue #437223807 تم إصلاح مشاكل تحديد الموارد ومواد العرض في المشاريع المتعددة الوحدات.
المشكلة رقم 464899800 تم إصلاح تعارض في إضافة Gradle ناتج عن تعارض في التسمية في version.properties.
المشكلة رقم 482433854 تم إصلاح أخطاء الإعداد الأوّلي للعناصر القابلة للإنشاء باستخدام kotlin-reflect أو التسلسل.

0.0.1‎-alpha13

يتضمّن هذا الإصدار ما يلي:

  • التوافق مع JDK 17 أو إصدار أحدث
  • إصلاح الأخطاء وتحسين التكامل مع "استوديو Android"

0.0.1‎-alpha12

يتضمّن هذا الإصدار ما يلي:

  • التوافق مع الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android ‏ (AGP)
  • إتاحة إجراء اختبارات لقطات الشاشة على الإصدار 24 من JDK والإصدارات الأحدث
  • إتاحة ضبط الحد الأقصى لحجم الذاكرة المؤقتة
  • إصلاح أخطاء العرض وتحسين ثبات الاختبار.
  • تحسين التقارير لتشمل الفرق في النسبة المئوية وغيرها من البيانات الوصفية ذات الصلة بالصور الجديدة والصور المرجعية.

0.0.1‎-alpha11

يتضمّن هذا الإصدار ما يلي:

  • التوافق مع الإصدار 8.13 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" ‏ (AGP)
  • إمكانية تحليل عناصر 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

يتضمّن هذا الإصدار ما يلي:

‫Image Difference Threshold: يتيح لك إعداد الحدّ العام الجديد هذا التحكّم بشكل أفضل في عمليات مقارنة لقطات الشاشة. لضبط الإعدادات، عدِّل ملف build.gradle.kts الخاص بالوحدة على النحو التالي:

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

سيتم تطبيق الحدّ الأدنى هذا على جميع اختبارات لقطات الشاشة المحدّدة في الوحدة.

  • إصلاح الأخطاء: تم إصلاح بعض الأخطاء في أداة العرض Compose Renderer وإتاحة إمكانية إنشاء رسالة فارغة.
  • تحسينات على الأداء: تم تعديل خوارزمية مقارنة الصور لتصبح أسرع.