لدى Discourse اختبارات واجهة أمامية واسعة النطاق للنواة والإضافات والسمات. بمجرد حصولك على بيئة تطوير محلية عاملة، يمكن تشغيل تلك الاختبارات محليًا بعدة طرق.
تشغيل الاختبارات في المتصفح
النواة / الإضافات: قم بزيارة /tests في بيئة التطوير الخاصة بك
السمات: قم بزيارة /theme-qunit في بيئة التطوير (أو الإنتاج) الخاصة بك، ثم اختر السمة
بشكل عام، عند العمل على اختبارات النواة، يجب عليك تمكين “تخطي الإضافات” (Skip Plugins)، وعندما تعمل على الإضافات، يجب عليك اختيار الإضافة المحددة من القائمة المنسدلة (مما سيؤدي تلقائيًا إلى “تخطي النواة”). لا يُتوقع أن تجتاز مجموعة اختبارات النواة بنجاح عند تمكين الإضافات (لأن الإضافات غالبًا ما تغير سلوك النواة عن قصد)
للأسف، في وقت كتابة هذا التقرير، تعني تسريبات الذاكرة في اختباراتنا أن محاولة تشغيل المجموعة بأكملها في متصفح واحد يميل إلى الوصول إلى حد ذاكرة المتصفح. لتشغيل المجموعة بأكملها عبر متصفحات متعددة بالتوازي، تحقق من أمثلة سطر الأوامر (CLI) أدناه.
تشغيل الاختبارات على سطر الأوامر (CLI)
النواة
انتقل إلى جذر تطبيق Ember (app/assets/javascripts/discourse) في مستودع Discourse وتأكد من تشغيل pnpm install منذ آخر مرة سحبت فيها تغييرات المنبع (upstream).
من هناك، يمكنك استخدام أدوات Ember-CLI القياسية لتشغيل الاختبارات - تحقق من قسم “كيفية تشغيل الاختبارات” في أدلة Ember. لدينا أيضًا Ember Exam مثبت يوفر بعض علامات التخصيص العشوائي والتوازي المفيدة جدًا.
فيما يلي بعض الأمثلة المفيدة:
# تشغيل مجموعة اختبارات النواة بأكملها عبر 5 مثيلات 'بدون واجهة رسومية' من Chrome بالتوازي:
pnpm ember exam --parallel 5 --load-balance
# تشغيل جميع الاختبارات التي تحتوي على سلسلة معينة في اسم الوحدة/الاختبار الخاص بها:
pnpm ember exam --filter "Integration | Component | bookmark"
# التشغيل في وضع "الخادم" (server)، والذي يمنحك عنوان URL لتحميله في متصفح لسهولة تصحيح الأخطاء:
pnpm ember exam --filter "somefilter" --server
الإضافات
من الدليل الجذر لـ Discourse:
bin/rake "plugin:qunit" # تشغيل جميع اختبارات qunit للإضافات
bin/rake "plugin:qunit[discourse-chat-integration]" # تشغيل اختبارات qunit لإضافة واحدة
السمات
من الدليل الجذر لـ Discourse:
bin/rake "themes:qunit[url,<theme_url>]"
bin/rake "themes:qunit[name,<theme_name>]"
bin/rake "themes:qunit[id,<theme_id>]"
يتم التحكم في إصدار هذه الوثيقة - اقترح التغييرات على github.