يدعم bun test تنسيقات إخراج مختلفة من خلال المُبلِغات. يغطي هذا المستند كلاً من المُبلِغات المدمجة وكيفية تنفيذ المُبلِغات المخصصة الخاصة بك.
المُبلِغات المدمجة
مُبلِغ وحدة التحكم الافتراضي
بشكل افتراضي، يُخرِج bun test النتائج إلى وحدة التحكم بتنسيق مقروء للبشر:
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:
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 للاختبارات الفاشلة - مفيد لمجموعات الاختبار الكبيرة.
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 لتحديد ملف الإخراج:
bun test --reporter=junit --reporter-outfile=./junit.xmlيستمر هذا في الإخراج إلى وحدة التحكم كالمعتاد مع كتابة تقرير JUnit XML إلى المسار المحدد في نهاية تشغيل الاختبار.
التكوين عبر bunfig.toml
يمكنك أيضًا تكوين مُبلِغ JUnit في ملف bunfig.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_URL | ci | معلومات بناء CI |
GITHUB_SHA, CI_COMMIT_SHA, GIT_SHA | commit | معرفات التزام Git |
| اسم مضيف النظام | hostname | اسم مضيف الجهاز |
هذا يجعل من السهل تتبع البيئة والتزام الذي كان لتشغيل اختبار معين.
القيود الحالية
يحتوي مُبلِغ JUnit حاليًا على بعض القيود التي سيتم معالجتها في التحديثات المستقبلية:
- إخراج
stdoutوstderrمن الاختبارات الفردية غير مُتضمَّن في التقرير - حقول الطوابع الزمنية الدقيقة لكل حالة اختبار غير مُتضمَّنة
مُبلِغ GitHub Actions
يكتشف اختبار Bun تلقائيًا عندما يعمل داخل GitHub Actions ويُصدِر تعليقات GitHub Actions إلى وحدة التحكم مباشرة. لا حاجة لأي تكوين خاص بخلاف تثبيت Bun وتشغيل bun test.
لمثال تكوين سير عمل GitHub Actions، راجع قسم تكامل CI/CD من وثائق CLI.
المُبلِغات المخصصة
يسمح Bun للمطورين بتنفيذ مُبلِغات اختبار مخصصة من خلال توسيع بروتوكول مفتش WebKit مع مجالات إضافية خاصة بالاختبار.
بروتوكول المفتش للاختبار
لدعم إعداد تقارير الاختبار، يوسع Bun بروتوكول مفتش WebKit القياسي بمجالين مخصصين:
- TestReporter: يُبلِغ عن اكتشاف الاختبار وبدء التشغيل وأحداث الاكتمال
- LifecycleReporter: يُبلِغ عن الأخطاء والاستثناءات أثناء تنفيذ الاختبار
تسمح هذه الامتدادات ببناء أدوات إعداد تقارير مخصصة يمكنها تلقي معلومات مفصلة حول تنفيذ الاختبار في الوقت الفعلي.
الأحداث الرئيسية
يمكن للمُبلِغات المخصصة الاستماع لهذه الأحداث الرئيسية:
TestReporter.found: يُصدَر عند اكتشاف اختبارTestReporter.start: يُصدَر عند بدء تشغيل اختبارTestReporter.end: يُصدَر عند اكتمال اختبارConsole.messageAdded: يُصدَر عند حدوث إخراج وحدة تحكم أثناء اختبارLifecycleReporter.error: يُصدَر عند حدوث خطأ أو استثناء