الحلقة 4: لروبرت في واترلو، أونتاريو (يوليو 2019)
الحلقات السابقة
إذا كنت تستخدم Blink، قد تعرف web_tests (المعروفة سابقًا باسم LayoutTests)،
تتوفّر اختبارات web-platform-tests (WPT) في web_test/external/wpt
. WPT هو الطريقة المفضّلة لاختبار الميزات الظاهرة على الويب، حيث تتم مشاركتها مع المتصفحات الأخرى عبر GitHub. ويتضمن نوعين رئيسيين من الاختبارات: اختبارات reftests وtestharness.js.
reftests تأخذ لقطات شاشة وتقارن بينها لصفحتين. يتم تلقائيًا أخذ لقطات الشاشة بعد بدء حدث load
، وإذا أضفت فئة reftest-wait
إلى العنصر <html>
، سيتم أخذ لقطة الشاشة عند إزالة الفئة.
أما الاختبارات التي يتم إيقافها، فسيؤدي ذلك إلى تقليل تغطية الاختبارات. انتبِه إلى الدقّة في الخط، واستخدِم الخط Ahem
قدر الإمكان.
testharness.js هو إطار عمل JavaScript لاختبار أي شيء باستثناء العرض. عند كتابة اختبارات testharness.js، انتبه للتوقيت، وتذكّر تنظيف الحالة العامة.
المهلة غير المستقرة والحالات المُحتمَلة للتسريب:
<script> promise_test(async t => { assert_equals(await slowLocalStorageTest(), "expected", "message"); localStorage.clear(); }); </script>
اختبار أفضل يتضمّن المهلة الطويلة وعملية تنظيف:
<meta name="timeout" content="long"> <script> promise_test(async t => { t.add_cleanup(() => localStorage.clear()); assert_equals(await slowLocalStorageTest(), "expected", "message"); }); </script>
استخدِم testdriver.js إذا كنت بحاجة إلى استخدام الأساليب المبرمَجة غير المتاحة على الويب.
يمكنك الحصول على إيماءة مستخدم من test_driver.bless
وإنشاء إدخالات معقدة
وموثوقة باستخدام test_driver.action_sequence
، وما إلى ذلك.
توفّر أداة WPT أيضًا بعض الميزات المفيدة من جهة الخادم من خلال أسماء الملفات.
تُجري الاختبارات المتعددة اللغات (.any.js
وأصدقاؤها) الاختبارات نفسها في نطاقات مختلفة (window
وworker
وما إلى ذلك). يطلب .https.sub.html
تحميل الاختبار عبر HTTPS
مع إتاحة الاستبدال من جهة الخادم على النحو التالي:
var anotherOrigin = "https://{{hosts[][www1]}}:{{ports[https][0]}}/path/to/page.html";
يمكن أيضًا تفعيل بعض الميزات في سلاسل طلبات البحث.
تتيح baz.html?pipe=sub|header(X-Key,val)|trickle(d1)
إمكانية الاستبدال وتضيف X-Key: val
إلى عناوين الاستجابة وتتأخر ثانية واحدة قبل الاستجابة. ابحث عن "المسارات"
على web-platform-tests.org لمزيد من المعلومات.
يمكن أن يختبر WPT أيضًا السلوكيات التي لم يتم تضمينها في المواصفات بعد، ما عليك سوى
تسمية الاختبار على أنه .tentative
. إذا كنت بحاجة إلى واجهات برمجة تطبيقات Blink الداخلية (مثل
testRunner
أو internals
)، يمكنك إجراء اختباراتك في web_tests/wpt_internal
.
يتم تصدير التغييرات التي تم إجراؤها على WPT تلقائيًا إلى GitHub. ستظهر لك تعليقات
من برنامج تتبُّع في CL. يتم أيضًا استيراد تغييرات GitHub من البائعين
الآخرين باستمرار. لتلقّي الأخطاء التي تم رصدها تلقائيًا عند استيراد حالات تعذُّر
جديدة، أنشئ ملف OWNERS
في دليل فرعي في WPT:
# TEAM: your-team@chromium.org
# COMPONENT: Blink>YourComponent
# WPT-NOTIFY: true
emails-here-will-be-cc@chromium.org
مراجع إضافية
- هل تريد أن تعرف كيف يتم إجراء اختباراتك على المتصفحات الأخرى ومدى إمكانية التشغيل التفاعلي لهذه الميزة؟ استخدِم wpt.fyi.
- هل تبحث عن المزيد من المستندات حول واجهات برمجة التطبيقات والإرشادات والأمثلة والنصائح وغير ذلك؟ انتقِل إلى web-platform-tests.org.