Skip to content

يدعم bun test تنسيقات إخراج مختلفة من خلال المُبلِغات. يغطي هذا المستند كلاً من المُبلِغات المدمجة وكيفية تنفيذ المُبلِغات المخصصة الخاصة بك.


المُبلِغات المدمجة

مُبلِغ وحدة التحكم الافتراضي

بشكل افتراضي، يُخرِج bun test النتائج إلى وحدة التحكم بتنسيق مقروء للبشر:

sh
test/package-json-lint.test.ts:
 test/package.json [0.88ms]
 test/js/third_party/grpc-js/package.json [0.18ms]
 test/js/third_party/svelte/package.json [0.21ms]
 test/js/third_party/express/package.json [1.05ms]

 4 اجتاز
 0 فشل
 4 استدعاءات expect()
تم تشغيل 4 اختبارات في 1.44ms

عندما لا تدعم المحطة الطرفية الألوان، يتجنب الإخراج الأحرف غير ASCII:

sh
test/package-json-lint.test.ts:
(pass) test/package.json [0.48ms]
(pass) test/js/third_party/grpc-js/package.json [0.10ms]
(pass) test/js/third_party/svelte/package.json [0.04ms]
(pass) test/js/third_party/express/package.json [0.04ms]

 4 اجتاز
 0 فشل
 4 استدعاءات expect()
تم تشغيل 4 اختبارات عبر ملف واحد. [0.66ms]

مُبلِغ النقاط

يُظهر مُبلِغ النقاط . للاختبارات الناجحة و F للاختبارات الفاشلة - مفيد لمجموعات الاختبار الكبيرة.

sh
bun test --dots
bun test --reporter=dots

مُبلِغ JUnit XML

لبيئات CI/CD، يدعم Bun إنشاء تقارير JUnit XML. JUnit XML هو تنسيق مُعتمَد على نطاق واسع لنتائج الاختبار يمكن تحليله بواسطة العديد من أنظمة CI/CD، بما في ذلك GitLab و Jenkins وغيرها.

استخدام مُبلِغ JUnit

لإنشاء تقرير JUnit XML، استخدم العلم --reporter=junit مع --reporter-outfile لتحديد ملف الإخراج:

sh
bun test --reporter=junit --reporter-outfile=./junit.xml

يستمر هذا في الإخراج إلى وحدة التحكم كالمعتاد مع كتابة تقرير JUnit XML إلى المسار المحدد في نهاية تشغيل الاختبار.

التكوين عبر bunfig.toml

يمكنك أيضًا تكوين مُبلِغ JUnit في ملف bunfig.toml:

bunfig.toml
toml
[test.reporter]
junit = "path/to/junit.xml"  # مسار إخراج تقرير JUnit XML

متغيرات البيئة في تقارير JUnit

يتضمن مُبلِغ JUnit تلقائيًا معلومات بيئة الاختبار كـ <properties> في إخراج XML. يمكن أن يكون هذا مفيدًا لتتبع تشغيل الاختبار في بيئات CI.

على وجه التحديد، يتضمن متغيرات البيئة التالية عند توفرها:

متغير البيئةاسم الخاصيةالوصف
GITHUB_RUN_ID, GITHUB_SERVER_URL, GITHUB_REPOSITORY, CI_JOB_URLciمعلومات بناء CI
GITHUB_SHA, CI_COMMIT_SHA, GIT_SHAcommitمعرفات التزام Git
اسم مضيف النظامhostnameاسم مضيف الجهاز

هذا يجعل من السهل تتبع البيئة والتزام الذي كان لتشغيل اختبار معين.

القيود الحالية

يحتوي مُبلِغ JUnit حاليًا على بعض القيود التي سيتم معالجتها في التحديثات المستقبلية:

  • إخراج stdout و stderr من الاختبارات الفردية غير مُتضمَّن في التقرير
  • حقول الطوابع الزمنية الدقيقة لكل حالة اختبار غير مُتضمَّنة

مُبلِغ GitHub Actions

يكتشف اختبار Bun تلقائيًا عندما يعمل داخل GitHub Actions ويُصدِر تعليقات GitHub Actions إلى وحدة التحكم مباشرة. لا حاجة لأي تكوين خاص بخلاف تثبيت Bun وتشغيل bun test.

لمثال تكوين سير عمل GitHub Actions، راجع قسم تكامل CI/CD من وثائق CLI.


المُبلِغات المخصصة

يسمح Bun للمطورين بتنفيذ مُبلِغات اختبار مخصصة من خلال توسيع بروتوكول مفتش WebKit مع مجالات إضافية خاصة بالاختبار.

بروتوكول المفتش للاختبار

لدعم إعداد تقارير الاختبار، يوسع Bun بروتوكول مفتش WebKit القياسي بمجالين مخصصين:

  1. TestReporter: يُبلِغ عن اكتشاف الاختبار وبدء التشغيل وأحداث الاكتمال
  2. LifecycleReporter: يُبلِغ عن الأخطاء والاستثناءات أثناء تنفيذ الاختبار

تسمح هذه الامتدادات ببناء أدوات إعداد تقارير مخصصة يمكنها تلقي معلومات مفصلة حول تنفيذ الاختبار في الوقت الفعلي.

الأحداث الرئيسية

يمكن للمُبلِغات المخصصة الاستماع لهذه الأحداث الرئيسية:

  • TestReporter.found: يُصدَر عند اكتشاف اختبار
  • TestReporter.start: يُصدَر عند بدء تشغيل اختبار
  • TestReporter.end: يُصدَر عند اكتمال اختبار
  • Console.messageAdded: يُصدَر عند حدوث إخراج وحدة تحكم أثناء اختبار
  • LifecycleReporter.error: يُصدَر عند حدوث خطأ أو استثناء

Bun بواسطة www.bunjs.com.cn تحرير