Testing

اختبار PHP

يستخدم Chamilo برنامج PHPUnit لاختبار الخلفية.

إعداد قاعدة بيانات الاختبار

تتطلب الاختبارات قاعدة بيانات مخصصة. أنشئ .env.test.local مع بيانات اعتماد قاعدة بيانات الاختبار:

DATABASE_HOST='127.0.0.1'
DATABASE_PORT='3306'
DATABASE_NAME='chamilo_test'
DATABASE_USER='root'
DATABASE_PASSWORD='root'

ثم قم بتهيئة قاعدة بيانات الاختبار:

php bin/console --env=test cache:clear
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:create
php bin/console --env=test doctrine:fixtures:load --no-interaction

لإعادة التعيين بعد تغييرات في المخطط:

php bin/console --env=test doctrine:schema:update --force --complete

تشغيل الاختبارات

موقع الاختبارات

توجد الاختبارات في دليل tests/:

أنواع الاختبارات

  • اختبارات الوحدة/التكامل — اختبارات PHPUnit في CoreBundle/ وCourseBundle/؛ معظمها يصل إلى قاعدة بيانات حقيقية (عبر dama/doctrine-test-bundle)

  • اختبارات وظيفية (API) — تمتد AbstractApiTest وتختبر نقاط نهاية HTTP من نهاية إلى نهاية

  • اختبارات Behat — اختبارات قبول على مستوى المتصفح في tests/behat/features/ (انظر أدناه)

اختبارات Behat (من نهاية إلى نهاية)

يحتوي Chamilo على مجموعة اختبار Behat لاختبار القبول على مستوى المتصفح. يتطلب تشغيل نسخة Chamilo، Chrome، وChromeDriver.

قم بتكوين عنوان URL الأساسي في tests/behat/behat.yml قبل التشغيل.

فحوصات الواجهة الأمامية

جودة كود PHP

يستخدم Chamilo أدوات ECS (Easy Coding Standard)، وPHPStan، وPsalm لجودة الكود. تتوفر اختصارات Composer لكل منها:

ملاحظة: لا يوجد php-cs-fixer في هذا المشروع. ECS (symplify/easy-coding-standard) هو أداة أسلوب الكود.

التكامل المستمر

يتم فحص طلبات السحب تلقائيًا بواسطة أربعة تدفقات عمل GitHub Actions:

التدفق العملي
ما يشغله

phpunit.yml

مجموعة اختبار PHPUnit

format_code.yml

فحص أسلوب كود ECS

php_analysis.yml

Psalm، التحقق من صحة مخطط Doctrine، فاحص الأمان

behat.yml

اختبارات Behat من نهاية إلى نهاية

آخر تحديث

هل كان هذا مفيدا؟