تحدد آلية اكتشاف ملفات اختبار 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:
bun test <filter> <filter> ...أي ملف اختبار يحتوي مساره على أحد المرشحات سيتم تشغيله. هذه المرشحات هي مطابقات سلسلة بسيطة، وليست أنماط glob.
على سبيل المثال، لتشغيل جميع الاختبارات في دليل utils:
bun test utilsهذا سيطابق ملفات مثل src/utils/string.test.ts و lib/utils/array_test.js.
تحديد مسارات الملفات الدقيقة
لتشغيل ملف محدد في عداء الاختبار، تأكد من أن المسار يبدأ بـ ./ أو / لتمييزه عن اسم مرشح:
bun test ./test/specific-file.test.tsالتصفية حسب اسم الاختبار
لتصفية الاختبارات حسب الاسم بدلاً من مسار الملف، استخدم العلم -t/--test-name-pattern مع نمط regex:
# تشغيل جميع الاختبارات التي تحتوي على "addition" في الاسم
bun test --test-name-pattern additionيتم مطابقة النمط مع سلسلة مجمعة من اسم الاختبار مسبوقًا بتسميات جميع كتل describe الأصلية، مفصولة بمسافات. على سبيل المثال، اختبار معرّف كالتالي:
describe("Math", () => {
describe("operations", () => {
test("should add correctly", () => {
// ...
});
});
});سيتم مطابقته مع السلسلة "Math operations should add correctly".
تغيير الدليل الجذر
افتراضيًا، يبحث Bun عن ملفات الاختبار بدءًا من دليل العمل الحالي. يمكنك تغيير ذلك باستخدام خيار root في bunfig.toml:
[test]
root = "src" # مسح ملفات الاختبار في دليل src فقطترتيب التنفيذ
يتم تشغيل الاختبارات بالترتيب التالي:
- يتم تشغيل ملفات الاختبار بشكل تسلسلي (ليس بشكل متوازٍ)
- داخل كل ملف، يتم تشغيل الاختبارات بشكل تسلسلي بناءً على ترتيب تعريفها