في كثير من الحالات، يمكن لمُشغل اختبارات Bun تشغيل مجموعات اختبارات Jest دون أي تغييرات في الكود. فقط شغّل bun test بدلاً من npx jest أو yarn test إلخ.
npx jest
yarn test
bun testغالبًا لا حاجة لتغييرات في الكود.
- يعيد Bun داخليًا كتابة الواردات من
@jest/globalsلاستخدام مكافئاتbun:test. - إذا كنت تعتمد على Jest لحقن
testأوexpectإلخ كعوامل عامة، فإن Bun يفعل ذلك أيضًا.
ولكن إذا كنت تفضل التبديل إلى واردات bun:test، فيمكنك فعل ذلك أيضًا.
import { test, expect } from "@jest/globals";
import { test, expect } from "bun:test"; منذ Bun v1.2.19، يمكنك تمكين دعم TypeScript لدوال الاختبار العامة باستخدام توجيه ثلاثي الشفرات واحد. هذا يجعل الترحيل من Jest أسهل بكثير حيث تحتاج فقط إلى إضافة التوجيه مرة واحدة في مشروعك بأكمله:
أضف هذا التوجيه إلى ملف واحد فقط في مشروعك، مثل:
- ملف
global.d.tsفي جذر مشروعك - ملف إعداد
preload.tsللاختبار الخاص بك (إذا كنت تستخدمpreloadفي bunfig.toml) - أي ملف
.tsواحد يتضمنه TypeScript في تجميعك
/// <reference types="bun-types/test-globals" />بمجرد إضافته، ستحصل جميع ملفات الاختبار في مشروعك تلقائيًا على دعم TypeScript لعوامل Jest العامة:
describe("my test suite", () => {
test("should work", () => {
expect(1 + 1).toBe(2);
});
beforeAll(() => {
// كود الإعداد
});
afterEach(() => {
// كود التنظيف
});
});يُطبق Bun الغالبية العظمى من مطابقات Jest، لكن التوافق ليس 100% بعد. راجع جدول التوافق الكامل في الوثائق > مُشغل الاختبارات > كتابة الاختبارات.
بعض الميزات الغائبة البارزة:
expect().toHaveReturned()
إذا كنت تستخدم testEnvironment: "jsdom" لتشغيل اختباراتك في بيئة شبيهة بالمتصفح، فيجب عليك اتباع دليل اختبار DOM مع Bun و happy-dom لحقن واجهات برمجة تطبيقات المتصفح في النطاق العام. يعتمد هذا الدليل على happy-dom، وهو بديل أنحف وأسرع من jsdom.
في الوقت الحالي لا يعمل jsdom في Bun بسبب استخدامه الداخلي لواجهات برمجة تطبيقات V8. تابع دعمه هنا.
[test]
preload = ["./happy-dom.ts"]استبدل bail في تكوين Jest الخاص بك بعلم CLI --bail.
bun test --bail=3استبدل collectCoverage بعلم CLI --coverage.
bun test --coverageاستبدل testTimeout بعلم CLI --test-timeout.
bun test --timeout 10000تصبح العديد من العلامات الأخرى غير ذات صلة أو قديمة عند استخدام bun test.
transform— يدعم Bun TypeScript و JSX. يمكن تكوين أنواع الملفات الأخرى باستخدام الإضافات.extensionsToTreatAsEsmhaste— يستخدم Bun خرائط المصدر الداخلية الخاصة بهwatchman،watchPlugins،watchPathIgnorePatterns— استخدم--watchلتشغيل الاختبارات في وضع المراقبةverbose— عيّنlogLevel: "debug"فيbunfig.toml
الإعدادات التي لم يتم ذكرها هنا غير مدعومة أو ليس لها مكافئ. يرجى تقديم طلب ميزة إذا كان هناك شيء مهم مفقود.
راجع أيضًا: