Skip to content

يحتوي Bun على مُشغل اختبارات مدمج مع واجهة expect شبيهة بـ Jest.


لاستخدامه، شغّل الأمر bun test من دليل مشروعك. سيبحث مُشغل الاختبارات بشكل متكرر عن جميع الملفات في الدليل التي تطابق الأنماط التالية وينفذ الاختبارات الموجودة فيها.

txt
*.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).

sh
bun test
txt
test.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. سيقوم المُشغل بتنفيذ الملفات التي تحتوي على تلك الوسيطة في مسارها فقط.

sh
bun test test3
txt
test3.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.

ts
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.

sh
bun test -t add
txt
test.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]

راجع الوثائق > مُشغل الاختبارات للحصول على الوثائق الكاملة لمُشغل الاختبارات.

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