يمكن تكوين bun test باستخدام ملف bunfig.toml في جذر مشروعك.
تكوين bunfig.toml
يمكن تكوين bun test باستخدام ملف bunfig.toml في جذر مشروعك.
[test]
# تكوين الاختبارroot
يحدد الدليل الجذر الذي سيتم تشغيل الاختبارات منه.
[test]
root = "./tests"preload
يحدد الملفات التي سيتم تحميلها مسبقًا قبل تشغيل الاختبارات. هذا مفيد لإعداد خطافات دورة الحياة أو المحاكاة العامة.
[test]
preload = ["./test/setup.ts"]يمكن تحديد ملفات متعددة:
[test]
preload = ["./test/setup.ts", "./test/mocks.ts"]coverage
يمكّن تقرير تغطية الكود.
[test]
coverage = truecoverageSkipTestFiles
عند التمكين، يستبعد ملفات الاختبار نفسها من تقارير التغطية.
[test]
coverageSkipTestFiles = true # الافتراضي falsecoverageThreshold
يحدد عتبة تغطية دنيا. إذا كانت التغطية أقل من هذه القيمة، سيفشل الاختبار.
[test]
# عتبة بسيطة
coverageThreshold = 0.8
# عتبات مفصلة
coverageThreshold = { lines = 0.8, functions = 0.9, statements = 0.8 }coverageReporter
يحدد مُبلغي التغطية لاستخدامهم.
[test]
coverageReporter = ["text", "lcov"]القيم المتاحة:
"text"- يطبع ملخصًا نصيًا إلى وحدة التحكم"lcov"- يحفظ بتنسيق LCOV للتكامل مع أدوات CI/CD
coverageDir
يحدد دليل إخراج التغطية.
[test]
coverageDir = "coverage-reports" # الافتراضي "coverage"coveragePathIgnorePatterns
يحدد أنماط الملفات التي سيتم استبعادها من تقارير التغطية.
[test]
coveragePathIgnorePatterns = [
"**/*.spec.ts",
"src/utils/**",
"*.config.js"
]coverageIgnoreSourcemaps
عند التمكين، يتجاهل خرائط المصدر عند حساب التغطية.
[test]
coverageIgnoreSourcemaps = true # الافتراضي falsereporters
يحدد مُبلغي الاختبار لاستخدامهم.
[test]
reporters = ["default", "junit"]القيم المتاحة:
"default"- المبلغ الافتراضي"junit"- إخراج بتنسيق JUnit XML"json"- إخراج بتنسيق JSON
reporterOutfile
يحدد ملف الإخراج للمُبلغين مثل JUnit.
[test]
reporterOutfile = "./test-results.xml"timeout
يحدد مهلة الاختبار الافتراضية بالمللي ثانية.
[test]
timeout = 5000 # 5 ثوانٍconcurrent
يمكّن التنفيذ المتزامن للاختبارات.
[test]
concurrent = truemaxConcurrency
يحدد الحد الأقصى لعدد الاختبارات التي تعمل بشكل متزامن.
[test]
maxConcurrency = 10 # الافتراضي 20randomize
يمكّن التشغيل العشوائي للاختبارات.
[test]
randomize = trueseed
يحدد البذرة للعشوائية القابلة للتكرار.
[test]
seed = 12345bail
ينهي الاختبارات مبكرًا بعد عدد محدد من حالات الفشل.
[test]
bail = 5 # الإنهاء بعد 5 فشلrerunEach
يشغل كل اختبار عدة مرات.
[test]
rerunEach = 3testNamePattern
يصفّي الاختبارات حسب نمط الاسم.
[test]
testNamePattern = "API"only
عند التمكين، يشغل فقط الاختبارات المحددة بـ test.only.
[test]
only = trueskip
عند التمكين، يتخطى جميع الاختبارات المحددة بـ test.skip.
[test]
skip = truetodo
عند التمكين، يعامل الاختبارات المحددة بـ test.todo كاختبارات todo.
[test]
todo = trueautoInstall
عند التمكين، يثبت التبعيات تلقائيًا عند الحاجة.
[test]
autoInstall = trueignore
يحدد الملفات أو الأدلة التي سيتم تجاهلها عند اكتشاف الاختبارات.
[test]
ignore = [
"node_modules/**",
"dist/**",
"build/**"
]example
إليك مثال كامل لملف bunfig.toml:
[test]
# الإعدادات الأساسية
root = "./tests"
preload = ["./tests/setup.ts"]
timeout = 10000
# التغطية
coverage = true
coverageSkipTestFiles = true
coverageThreshold = 0.8
coverageReporter = ["text", "lcov"]
coverageDir = "coverage"
coveragePathIgnorePatterns = [
"**/*.spec.ts",
"src/utils/**"
]
# المُبلغون
reporters = ["default", "junit"]
reporterOutfile = "./test-results.xml"
# التنفيذ
concurrent = true
maxConcurrency = 10
randomize = false
seed = 12345
# التصفية
testNamePattern = ""
ignore = ["node_modules/**", "dist/**"]
# خيارات أخرى
bail = 5
rerunEach = 1
autoInstall = trueمتغيرات البيئة
يمكن أيضًا تكوين بعض الخيارات باستخدام متغيرات البيئة:
# تعيين المهلة
BUN_TEST_TIMEOUT=10000 bun test
# تمكين التغطية
BUN_TEST_COVERAGE=1 bun test
# نمط اسم الاختبار
BUN_TEST_NAME_PATTERN="API" bun test
# البذرة العشوائية
BUN_TEST_SEED=12345 bun testالأولوية
عند تحديد الخيارات في مواقع متعددة، تكون الأولوية كما يلي:
- خيارات سطر الأوامر (الأعلى أولوية)
- متغيرات البيئة
bunfig.toml- القيم الافتراضية (الأدنى أولوية)
# يلغي هذا إعداد bunfig.toml
bun test --timeout=20000 # يتجاوز timeout = 10000 في bunfig.tomlتكوين خاص بالبيئة
يمكنك استخدام تكوينات مختلفة لبيئات مختلفة:
# تكوين مشترك
[test]
timeout = 5000
# تكوين التطوير
[dev-test]
coverage = false
concurrent = false
# تكوين CI
[ci-test]
coverage = true
coverageReporter = ["lcov"]
reporters = ["junit"]ثم في نصوص CI الخاصة بك:
# للتطوير
bun test
# لـ CI
bun test --config bunfig.toml#ci-test