الحلقة 4: من تأليف "روبرت في واترلو"، أونتاريو (تموز/يوليو 2019)
الحلقات السابقة
إذا كنت تستخدم Blink، ربما تعرف عن web_tests (المعروف سابقًا باسم LayoutTests).
اختبارات النظام الأساسي للويب (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.