DevOps Bootcamp · درس

اختبار نصوص Bash باستخدام Bats

اكتب اختبارات مؤتمتة لنصوص shell باستخدام إطار الاختبار Bats لاكتشاف حالات التراجع قبل وصولها إلى بيئة الإنتاج.

الدرس 4 من 413 خطوة

اختبار نصوص Bash باستخدام Bats درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

لماذا نختبر نصوص الصدفة؟

تفشل النصوص التي تعمل دون مراقبة، مثل cron وCI، بصمت. تتحقق الاختبارات الآلية من السلوك حتى لا تؤدي التغييرات إلى كسر الشفرة العاملة.

مقدمة إلى Bats

إن Bats ‏(Bash Automated Testing System) إطار عمل متوافق مع TAP لاختبار شفرة الصدفة. والاختبارات نفسها عبارة عن ملفات Bash.

# Install on Debian/Ubuntu
sudo apt-get install bats

بنية ملف الاختبار

ينتهي ملف Bats بالامتداد .bats، ويعرّف الاختبارات باستخدام الكلمة المفتاحية @test ووصف.

@test "addition works" {
  result=$(( 2 + 2 ))
  [ "$result" -eq 4 ]
}

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

شغّل ملفًا أو مجلدًا كاملًا باستخدام الأمر bats. ينجح الاختبار عندما ينتهي كل أمر داخله بالحالة 0.

bats test/
bats math.bats

المساعد run

ينفّذ الأمر run أمرًا ويلتقط رمز خروجه في $status ومخرجاته في $output دون إيقاف الاختبار.

@test "ls succeeds" {
  run ls /tmp
  [ "$status" -eq 0 ]
}

التحقق من المخرجات

قارن $output بالنص المتوقع. ويمكنك أيضًا فهرسة أسطر محددة باستخدام ${lines[0]}.

@test "echo prints hello" {
  run echo hello
  [ "$output" = "hello" ]
}

اختبار حالات الفشل

تتحقق الاختبارات الجيدة من مسارات الأخطاء أيضًا. أكّد أن قيمة $status غير صفرية عندما يُفترض أن يفشل الأمر.

@test "missing file fails" {
  run cat /no/such/file
  [ "$status" -ne 0 ]
}

الإعداد والتنظيف

عرّف الدالتين setup() وteardown() اللتين تعملان قبل كل اختبار وبعده لتجهيز ملفات الاختبار المؤقتة وتنظيفها.

setup() {
  TMP=$(mktemp -d)
}
teardown() {
  rm -rf "$TMP"
}

تحميل الشفرة قيد الاختبار

لاختبار الدوال، حمّل نصك البرمجي حتى تصبح دواله متاحة، ثم استدعها مباشرة داخل الاختبارات.

setup() {
  source ./lib/utils.sh
}
@test "slugify lowercases" {
  run slugify "Hello World"
  [ "$output" = "hello-world" ]
}

تخطي الاختبارات والاختبارات المؤجلة

استخدم skip لوضع علامة على اختبار لم يُنفّذ بعد أو غير مدعوم على المنصة الحالية، مع إمكانية تحديد سبب.

@test "windows-only feature" {
  skip "not supported on Linux"
}

التكامل مع CI

نظرًا إلى أن bats يعيد رمز خروج غير صفري عند الفشل، فإنه يتكامل مباشرة مع مسارات CI كحاجز قبل النشر.

# CI step
bats --tap test/ || exit 1

تحقّق سريع

اختبر معرفتك بـ Bats.

مراجعة

يمكنك الآن اختبار Bash باستخدام Bats:

  • عرّف الاختبارات باستخدام @test؛ ويعني النجاح انتهاء كل الأوامر بالحالة 0
  • استخدم run لالتقاط $status و$output
  • جهّز ملفات الاختبار المؤقتة باستخدام setup/teardown
  • حمّل النصوص البرمجية لاختبار الدوال، واجعل نتائجها بوابة لمسار CI
البدء مجانًا

تعلم DevOps Bootcamp مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
142
الدروس
568

الأسئلة الشائعة

هل درس «اختبار نصوص Bash باستخدام Bats» مجاني؟

نعم — نص درس «اختبار نصوص Bash باستخدام Bats» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «اختبار نصوص Bash باستخدام Bats»؟

اكتب اختبارات مؤتمتة لنصوص shell باستخدام إطار الاختبار Bats لاكتشاف حالات التراجع قبل وصولها إلى بيئة الإنتاج. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «اختبار نصوص Bash باستخدام Bats»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تصحيح أخطاء Bash Scripts (set -x، trap)
  2. معالجة الأخطاء وحالة الخروج
  3. أفضل ممارسات كتابة Scripts والفحص البرمجي
  4. اختبار نصوص Bash باستخدام Bats
← العودة إلى DevOps Bootcamp