Skip to content

تحدد آلية اكتشاف ملفات اختبار bun test الملفات التي سيتم تشغيلها كاختبارات. فهم كيفية عملها يساعدك في هيكلة ملفات الاختبار بشكل فعال.

منطق الاكتشاف الافتراضي ​

افتراضيًا، يبحث bun test بشكل متكرر في دليل المشروع عن الملفات التي تطابق أنماطًا محددة:

  • *.test.{js|jsx|ts|tsx} - الملفات التي تنتهي بـ .test.js أو .test.jsx أو .test.ts أو .test.tsx
  • *_test.{js|jsx|ts|tsx} - الملفات التي تنتهي بـ _test.js أو _test.jsx أو _test.ts أو _test.tsx
  • *.spec.{js|jsx|ts|tsx} - الملفات التي تنتهي بـ .spec.js أو .spec.jsx أو .spec.ts أو .spec.tsx
  • *_spec.{js|jsx|ts|tsx} - الملفات التي تنتهي بـ _spec.js أو _spec.jsx أو _spec.ts أو _spec.tsx

الاستبعادات ​

افتراضيًا، يتجاهل اختبار Bun:

  • أدلة node_modules
  • الأدلة المخفية (تلك التي تبدأ بنقطة .)
  • الملفات التي ليس لها امتدادات شبيهة بالجافا سكريبت (بناءً على المحملات المتاحة)

تخصيص اكتشاف الاختبار ​

وسيطات الموضع كمرشحات ​

يمكنك تصفية ملفات الاختبار التي يتم تشغيلها عن طريق تمرير وسيطات موضعية إضافية إلى bun test:

bash
bun test <filter> <filter> ...

أي ملف اختبار يحتوي مساره على أحد المرشحات سيتم تشغيله. هذه المرشحات هي مطابقات سلسلة بسيطة، وليست أنماط glob.

على سبيل المثال، لتشغيل جميع الاختبارات في دليل utils:

bash
bun test utils

هذا سيطابق ملفات مثل src/utils/string.test.ts و lib/utils/array_test.js.

تحديد مسارات الملفات الدقيقة ​

لتشغيل ملف محدد في عداء الاختبار، تأكد من أن المسار يبدأ بـ ./ أو / لتمييزه عن اسم مرشح:

bash
bun test ./test/specific-file.test.ts

التصفية حسب اسم الاختبار ​

لتصفية الاختبارات حسب الاسم بدلاً من مسار الملف، استخدم العلم -t/--test-name-pattern مع نمط regex:

sh
# تشغيل جميع الاختبارات التي تحتوي على "addition" في الاسم
bun test --test-name-pattern addition

يتم مطابقة النمط مع سلسلة مجمعة من اسم الاختبار مسبوقًا بتسميات جميع كتل describe الأصلية، مفصولة بمسافات. على سبيل المثال، اختبار معرّف كالتالي:

math.test.ts
ts
describe("Math", () => {
  describe("operations", () => {
    test("should add correctly", () => {
      // ...
    });
  });
});

سيتم مطابقته مع السلسلة "Math operations should add correctly".

تغيير الدليل الجذر ​

افتراضيًا، يبحث Bun عن ملفات الاختبار بدءًا من دليل العمل الحالي. يمكنك تغيير ذلك باستخدام خيار root في bunfig.toml:

bunfig.toml
toml
[test]
root = "src"  # مسح ملفات الاختبار في دليل src فقط

ترتيب التنفيذ ​

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

  1. يتم تشغيل ملفات الاختبار بشكل تسلسلي (ليس بشكل متوازٍ)
  2. داخل كل ملف، يتم تشغيل الاختبارات بشكل تسلسلي بناءً على ترتيب تعريفها

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