تشغيل الاختبارات باستخدام GitHub Actions
ادمجوا اختبارات الوحدات والاختبارات التكاملية الآلية في مسار CI لضمان جودة التعليمات البرمجية ومنع التراجعات.
تشغيل الاختبارات باستخدام GitHub Actions درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
لماذا نؤتمت الاختبارات في CI؟
تخيلوا أنكم أجرَيتم تغييرًا على التعليمات البرمجية وتعرفون فورًا ما إذا كان قد تسبب في تعطيل شيء آخر. تلك هي قوة الاختبار الآلي في مسار CI الخاص بكم!
يشير التكامل المستمر (CI) إلى دمج تغييرات التعليمات البرمجية بشكل متكرر في مستودع مركزي. وتعمل الاختبارات الآلية كحارس لهذه العملية.
فهي تكتشف الأخطاء مبكرًا، وتوفر ملاحظات سريعة، وتعزز الثقة في كل تغيير على التعليمات البرمجية.
أنواع الاختبارات في مساركم
عندما نتحدث عن الاختبارات الآلية، غالبًا ما يظهر نوعان أساسيان: اختبارات الوحدات واختبارات التكامل.
- اختبارات الوحدات: تركز على أجزاء صغيرة ومعزولة من التعليمات البرمجية، مثل دالة أو method واحدة. وهي سريعة وتحدد المشكلات بدقة.
- اختبارات التكامل: تتحقق مما إذا كانت الأجزاء المختلفة من النظام تعمل معًا بشكل صحيح، مثل تفاعل التعليمات البرمجية مع قاعدة بيانات أو API.
كلا النوعين ضروري لضمان متانة البرنامج وموثوقيته.
أتمتة الاختبارات باستخدام GitHub Actions
يمكن أن يعمل GitHub Actions كأداة تشغيل اختبارات شخصية لكم، إذ ينفذ اختباراتكم تلقائيًا كلما دفعتم تعليمات برمجية جديدة.
تعرّفون سير عمل يحدد وقت التشغيل، والبيئة المستخدمة، والأوامر التي ينبغي تنفيذها.
وهذا يضمن التحقق من صحة كل تغيير باستمرار، من دون جهد يدوي.
إعداد مشروع Java للاختبار
للتوضيح، سنستخدم مشروع Java بسيطًا تتم إدارته باستخدام Maven، وهي أداة شائعة لأتمتة عملية البناء.
يساعد Maven في إدارة تبعيات المشروع، ويوفر أوامر لترجمة التعليمات البرمجية وتشغيل الاختبارات.
سيحتوي مشروعنا على فئة Java بسيطة واختبار JUnit مطابق لها (من الناحية المفاهيمية).
مثالنا الأول على اختبار قابل للتشغيل
إليكم فئة Java بسيطة واختبارًا أساسيًا للتحقق من وظائفها. سنحاكي اختبار وحدة من دون إعداد JUnit كامل، للتبسيط.
تعمل الدالة main كمشغّل للاختبار، إذ تتحقق مما إذا كانت الدالة add تعمل كما هو متوقع.
حاولوا تشغيله لرؤية الناتج!
public class Calculator {
// Method to be tested
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
Calculator calc = new Calculator();
// Simulate a test case
int expected = 5;
int actual = calc.add(2, 3);
if (actual == expected) {
System.out.println("Test Passed: 2 + 3 = " + actual);
} else {
System.out.println("Test Failed: Expected " + expected + ", Got " + actual);
}
}
}بناء سير عمل الاختبارات
لنرَ الآن كيف سيبدو ملف سير عمل GitHub Actions (.github/workflows/test.yml) لتشغيل اختباراتنا.
يحدد ملف YAML هذا الخطوات التي سيتخذها GitHub Actions لإعداد البيئة وتنفيذ أوامر الاختبار.
سنستخدم أمر Maven test لتشغيل أي اختبارات JUnit فعلية في مشروع حقيقي.
name: Java CI with Maven
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Run Maven Tests
run: mvn test
فهم كل خطوة من خطوات سير العمل
لنحلل الخطوات الأساسية في سير عمل الاختبار لدينا:
on: push / pull_request: يشغّل سير العمل عند دفع التعليمات البرمجية أو إنشاء طلبات سحب إلى الفرعmain.runs-on: ubuntu-latest: يحدد نظام التشغيل للجهاز الافتراضي (المشغّل) الذي سينفذ سير العمل.actions/checkout@v4: إجراء مُعد مسبقًا يستخرج تعليمات مستودعكم البرمجية إلى المشغّل.actions/setup-java@v4: إجراء آخر لإعداد حزمة تطوير Java (JDK) على المشغّل.run: mvn test: هذه هي الخطوة الحاسمة! فهي تنفذ أمر Maven لترجمة تعليماتكم البرمجية وتشغيل جميع الاختبارات المحددة.
معالجة حالات فشل الاختبارات في CI
تُعد الملاحظات الفورية إحدى الفوائد الأساسية للاختبار في CI. فإذا فشل أي اختبار، ستفشل مهمة سير عمل GitHub Actions.
وهذا يشير بوضوح إلى أن تغيير التعليمات البرمجية الأخير تسبب في إدخال خطأ أو تراجع.
يمكنكم بعد ذلك مراجعة سجلات سير العمل لتحديد الاختبار الذي فشل والسبب بدقة، مما يساعدكم على إصلاح المشكلات بسرعة.
الأثر: الجودة والثقة
يُعد دمج الاختبارات الآلية في مسار CI ركيزة أساسية من ركائز تطوير البرمجيات الحديث.
فهو يمنع التراجعات بفاعلية، ويضمن جودة متسقة للتعليمات البرمجية، ويقلل بشكل كبير من خطر نشر ميزات معطلة.
تبني هذه العملية الثقة في قاعدة التعليمات البرمجية، مما يتيح لفريقكم الابتكار بسرعة أكبر وبموثوقية أعلى.
فحص اختبار سير العمل
لنفترض وجود سير عمل في GitHub Actions مصمم لتشغيل الاختبارات. ما الغرض الأساسي من الخطوة run: mvn test في مشروع Java؟
مراجعة: الاختبار في مسار CI الخاص بكم
استكشفنا في هذا الدرس كيفية دمج الاختبارات الآلية في مسار CI باستخدام GitHub Actions.
وتناولنا ما يلي:
- أهمية الاختبار الآلي لجودة التعليمات البرمجية.
- التمييز بين اختبارات الوحدات واختبارات التكامل.
- كيفية تنظيم سير عمل GitHub Actions لتشغيل اختبارات Java باستخدام Maven.
- فهم خطوات سير العمل مثل
checkoutوsetup-java. - الدور الحاسم للأمر
mvn testفي تنفيذ الاختبارات. - كيفية إبلاغ GitHub Actions عن حالات فشل الاختبارات.
يُعد الاختبار الآلي ضروريًا لاكتشاف الأخطاء مبكرًا والحفاظ على قاعدة تعليمات برمجية متينة!
الأسئلة الشائعة
هل درس «تشغيل الاختبارات باستخدام GitHub Actions» مجاني؟
نعم — نص درس «تشغيل الاختبارات باستخدام GitHub Actions» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «تشغيل الاختبارات باستخدام GitHub Actions»؟
ادمجوا اختبارات الوحدات والاختبارات التكاملية الآلية في مسار CI لضمان جودة التعليمات البرمجية ومنع التراجعات. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تشغيل الاختبارات باستخدام GitHub Actions»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مشغّلات سير العمل والأحداث
- تشغيل الاختبارات باستخدام GitHub Actions
- فحص التعليمات البرمجية والتحقق من جودتها
- تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء