يحتوي Bun على مُشغل اختبارات مدمج مع واجهة expect شبيهة بـ Jest.
لاستخدامه، شغّل الأمر bun test من دليل مشروعك. سيبحث مُشغل الاختبارات بشكل متكرر عن جميع الملفات في الدليل التي تطابق الأنماط التالية وينفذ الاختبارات الموجودة فيها.
*.test.{js|jsx|ts|tsx}
*_test.{js|jsx|ts|tsx}
*.spec.{js|jsx|ts|tsx}
*_spec.{js|jsx|ts|tsx}إليك ما يبدو عليه ناتج تشغيل اختبار نموذجي. في هذه الحالة، هناك ثلاثة ملفات اختبار (test.test.js و test2.test.js و test3.test.js) تحتوي على اختبارين لكل منهما (add و multiply).
bun testtest.test.js:
✓ add [0.87ms]
✓ multiply [0.02ms]
test2.test.js:
✓ add [0.72ms]
✓ multiply [0.01ms]
test3.test.js:
✓ add [0.54ms]
✓ multiply [0.01ms]
6 pass
0 fail
6 expect() calls
Ran 6 tests across 3 files. [9.00ms]لتشغيل ملفات اختبار معينة فقط، مرر وسيطة موضعية إلى bun test. سيقوم المُشغل بتنفيذ الملفات التي تحتوي على تلك الوسيطة في مسارها فقط.
bun test test3test3.test.js:
✓ add [1.40ms]
✓ multiply [0.03ms]
2 pass
0 fail
2 expect() calls
Ran 2 tests across 1 files. [15.00ms]جميع الاختبارات لها اسم، يُعرَّف باستخدام الوسيطة الأولى لدالة test. يمكن أيضًا تجميع الاختبارات في مجموعات مع describe.
import { test, expect, describe } from "bun:test";
describe("math", () => {
test("add", () => {
expect(2 + 2).toEqual(4);
});
test("multiply", () => {
expect(2 * 2).toEqual(4);
});
});لتصفية الاختبارات التي يتم تنفيذها حسب الاسم، استخدم العلم -t/--test-name-pattern.
إضافة -t add ستشغل فقط الاختبارات التي تحتوي على "add" في الاسم. هذا يعمل مع أسماء الاختبارات المُعرَّفة باستخدام test أو أسماء مجموعات الاختبارات المُعرَّفة باستخدام describe.
bun test -t addtest.test.js:
✓ add [1.79ms]
» multiply
test2.test.js:
✓ add [2.30ms]
» multiply
test3.test.js:
✓ add [0.32ms]
» multiply
3 pass
3 skip
0 fail
3 expect() calls
Ran 6 tests across 3 files. [59.00ms]راجع الوثائق > مُشغل الاختبارات للحصول على الوثائق الكاملة لمُشغل الاختبارات.