Git وGitHub / المتوسط: إدارة التغيير التعاوني / الدرس 12
الاختبار وسير تعاون GitHub
اربط الدليل الآلي بمراجعة المرشح واحمِ الحد بين المساهمة والأتمتة المميزة.
في هذه الصفحة
أهداف الدرس
- اشرح الفحص المحلي والحالة المستضافة والتكامل المحمي.
- راجع صلاحيات السير وخطر المساهمة غير الموثوقة.
اختبر اللقطة التي ستراجع
تعمل الاختبارات على نسخة وبيئة، ولا تغطي نتيجة قديمة اللاحق وقد يشمل المحلي إصلاحاً غير مرحل. سجل المرشح والأدوات والبيئة. قد يختبر سير الطلب الرأس أو مرجع تكامل مولداً وفق الحدث والضبط، فافهم المفحوص. الاسم وحده دليل ضعيف. طابق الفرق والفحوص مع المرشح لا تعتبر الأخضر خاصية دائمة لاسم الفرع.
استخدم فحص عقد محلياً صغيراً
يحوي المستودع اختباراً يحمي سلوكاً ولا يعتمد كلياً على الاستضافة. يفحص المثال قاعدة عنوان اصطناعية بمكتبة Python ولا يتصل أو يعدل التاريخ. يستورد الحقيقي الدالة من التطبيق لا يكررها بالاختبار. يوضح المثال المتوقع ويوفر السير البيئة المتكررة. تكشف الاختبارات تراجعاً محتملاً وتكمل المراجعة لا تفاصيل خاصة عارضة.
import unittest
def normalized_title(value):
result = value.strip()
if not result:
raise ValueError("EMPTY_TITLE")
return result
class TitleTests(unittest.TestCase):
def test_spaces_are_rejected(self):
with self.assertRaisesRegex(ValueError, "EMPTY_TITLE"):
normalized_title(" ")
def test_title_is_trimmed(self):
self.assertEqual(normalized_title(" Notes "), "Notes")
if __name__ == "__main__":
unittest.main()
يستخدم unittest في Python 3 ويمكن التحقق مؤقتاً. النتيجة المتوقعة نجاح اختبارين ولا يثبت التطبيق كله أو سياسة الفرع.
اقرأ إعداد السير كسياسة تنفيذية
يحدد YAML الأحداث والمهام والصلاحيات والأوامر. يوضح الجزء قراءة الرمز واختباراً بعد جلب وإعداد موثوقين؛ وهو ناقص لا يعمل مستقلاً. ثبت أدوات متوافقة وفق السياسة ولا تخترع إصداراً ثابتاً مزعوماً. تتطور الواجهة فراجع الرسمي. راجع الفحوص المطلوبة والتجاوز والمرشحات لأن الغياب ليس نجاحاً مكتملًا.
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Run prepared local tests
run: python -m unittest discover -s tests
يُحذف الجلب الموثوق وPython المتوافق كمقدمات. الوسم عائلة صورة لا بيئة ثابتة. لا تثبت الدورة سيراً أو تشغله ولا يلزم اعتماد للاختبار.
احمِ القدرات المميزة من التغيير غير الموثوق
يغير الفرع الاختبارات والنصوص والاعتماديات والسير. تشغيله باعتماد نشر أو مشغّل مميز حد ثقة مهما كان الاسم. افهم الأحداث والسياق المميز ولا تجمعه بجلب غير موثوق عابراً. قلل السلطة واحمِ السجلات والحزم واستخدم الهوية القصيرة المعتمدة للمهام المنفصلة اللازمة. لا يثبت نجاح الاختبار موثوقية السير؛ تحتاج ملكية السياسة والتقييم ضوابط.
اربط المراجعة والاختبار والتكامل
تسهل التغييرات الصغيرة فهم القصد ونسبة الفشل. أجب بتفسير ودليل جديد عند تغير السلوك. تحقق من مرشح التكامل إذا تقدم الأساس وفق السياسة. تحمي الموافقات والفحوص ولا تعوض تفويض النشر أو الخارج. احفظ التشخيص بمدة وبيانات اصطناعية. أكد الوجهة بعد الدمج وسجل القيود دون اعتبار الأخضر إغلاقاً لكل مسؤولية.
الأخطاء الشائعة وإصلاحها
نجحت الاختبارات بشيفرة غير مرحلة فقط
- لماذا يحدث؟
- اختلفت الشجرة عن المرشح.
- كيف تصلحه؟
- اختبر نسخة معزولة للقطة.
- كيف تتجنب تكراره؟
- اربط الدليل بهوية الإيداع.
يتلقى تغيير غير موثوق اعتمادات إصدار
- لماذا يحدث؟
- يتشارك التحقق والامتياز السياق.
- كيف تصلحه؟
- افصل القدرات وراجع الحدث والجلب.
- كيف تتجنب تكراره؟
- استخدم أقل امتياز وملكية موثوقة.
لا تعمل حزمة مطلوبة
- لماذا يحدث؟
- تحذف المرشحات مسار دليلها.
- كيف تصلحه؟
- افحص المتوقع وصنف الغائب.
- كيف تتجنب تكراره؟
- اختبر الاختيار بتغييرات ممثلة.
اختبر فهمك
1. يفحص السير مرجع دمج مولداً. لماذا يسجل ذلك؟
اعرض الحل المشروح
تخص النتيجة لقطة التكامل المختلفة عن الرأس. توضح الهوية المفحوص وحاجة إعادة بعد تقدم الطرفين.
2. لا تحتاج مهمة الاختبار خدمة خارجية. أي نطاق رمز يبدأ به؟
اعرض الحل المشروح
ابدأ بالأدنى كقراءة المحتوى عند حاجة الجلب وامنح اللازم فقط. أزل الأسرار والامتياز غير المرتبط. لا يبرر الاسم سلطة واسعة.
أهم ما تعلمته
- يخص الدليل لقطة وبيئة محددتين.
- إعداد السير سياسة تنفيذية.
- يحتاج التحقق غير الموثوق والامتياز حدوداً مختلفة.