تنفيذ تغطية التعليمات البرمجية وإظهارها في البنية الأساسية لبرنامج ربط العمليات التجارية
تقيس تغطية التعليمات البرمجية النسبة المئوية للتعليمات البرمجية المصدر التي يتم تنفيذها أثناء الاختبارات الآلية. يساعد هذا المقياس الفرق على فهم فعالية الاختبار وتحديد مناطق التعليمات البرمجية غير المختبرة وتحسين جودة البرامج. يوفر تنفيذ تغطية التعليمات البرمجية في مسار CI/CD رؤية لفجوات الاختبار ويساعد في الحفاظ على معايير عالية الجودة.
يختلف التنفيذ عبر الأنظمة الأساسية ولغات البرمجة ، لكن المبادئ الأساسية تظل متسقة. دعنا نستكشف كيفية تنفيذ تغطية التعليمات البرمجية في Azure Pipelines وعرض النتائج بشكل فعال.
تنفيذ تغطية التعليمات البرمجية في Azure Pipelines
بالنسبة لمشروع .NET (C#)، يتضمن تنفيذ تغطية التعليمات البرمجية عدة خطوات أساسية:
- إعداد أدوات الاختبار والتغطية: استخدم إطار عمل اختبار يدعم تحليل تغطية التعليمات البرمجية مثل NUnit أو MSTest أو xUnit ل .NET. دمج أداة تغطية التعليمات البرمجية مثل Coverlet أو OpenCover في مشروعك. يمكن لهذه الأدوات إنشاء تقارير تغطية التعليمات البرمجية بتنسيقات مختلفة متوافقة مع Azure Pipelines.
- تكوين Azure Pipelines: في مدخل Azure DevOps، انتقل إلى مشروع Azure DevOps وحدد البنية الأساسية لبرنامج ربط العمليات التجارية حيث تريد إضافة تغطية التعليمات البرمجية. تحرير تكوين البنية الأساسية لبرنامج ربط العمليات التجارية وإضافة خطوات لتثبيت التبعيات وإنشاء مشروعك.
- إضافة مهام تغطية التعليمات البرمجية: إضافة مهام إلى المسار لتشغيل الاختبارات مع تمكين تغطية التعليمات البرمجية وإنشاء تقارير التغطية. استخدم وسيطات سطر الأوامر المناسبة لمشغل الاختبار لتمكين تحليل تغطية التعليمات البرمجية وتحديد تنسيق الإخراج لتقارير التغطية.
- نشر تقارير تغطية التعليمات البرمجية: نشر تقارير تغطية التعليمات البرمجية التي تم إنشاؤها كقطع أثرية أو إرفاقها بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية. استخدم قدرات النشر المضمنة في Azure Pipelines أو المهام المخصصة لتحميل تقارير التغطية إلى Azure DevOps أو الخدمات الخارجية.
فيما يلي نموذج البنية الأساسية لبرنامج ربط العمليات التجارية يوضح هذا النهج:
```yaml
trigger:
- main
pool:
vmImage: "windows-latest"
steps:
- task: UseDotNet@2
inputs:
packageType: "sdk"
version: "8.0.x"
- script: dotnet restore
displayName: "Restore Dependencies"
- script: dotnet build --configuration Release
displayName: "Build Solution"
- script: dotnet test --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
displayName: "Run Tests with Code Coverage"
- task: PublishCodeCoverageResults@2
inputs:
summaryFileLocation: "$(Agent.TempDirectory)/**/*.xml"
failIfCoverageEmpty: true
```
ينشئ هذا المسار تقارير تغطية التعليمات البرمجية كجزء من عملية الإنشاء. يسمح لك هذا بمراجعة وتحليل نتائج التغطية في مدخل Azure DevOps. لإجراء تحليل أكثر تفصيلا، يمكنك تنزيل أدوات تغطية التعليمات البرمجية وفحصها باستخدام Visual Studio (عند استخدام مهمة اختبار Visual Studio) أو الخيارات الخاصة بأداة تغطية التعليمات البرمجية.
تنفيذ تغطية التعليمات البرمجية باستخدام GitHub Actions
للمقارنة، إليك كيفية تنفيذ تغطية التعليمات البرمجية لمشروع .NET (C#) باستخدام GitHub Actions:
- إعداد أدوات الاختبار والتغطية: كما هو الحال مع Azure DevOps، استخدم إطار عمل اختبار يدعم تحليل تغطية التعليمات البرمجية. تحقق من أن هذه الأدوات يمكنها إنشاء تقارير تغطية التعليمات البرمجية بالتنسيقات المتوافقة مع GitHub.
- إنشاء سير عمل إجراءات GitHub: في صفحة مستودع GitHub، انتقل إلى دليل .github/workflows. إنشاء ملف YAML جديد (على سبيل المثال، ci.yml) لتعريف تكوين سير العمل الخاص بك. حدد المشغلات لسير العمل الخاص بك، مثل طلبات السحب أو الدفعات إلى فروع معينة.
- تكوين خطوات سير العمل: تحديد الخطوات في YAML لسير العمل لإعداد البيئة واستعادة التبعيات وإنشاء مشروعك وتشغيل الاختبارات وإنشاء تقارير تغطية التعليمات البرمجية. تأكد من تضمين التعليمات البرمجية المصدر للمشروع وتكوين الاختبار والتبعيات الضرورية في المستودع. استخدم إجراءات مثل actions/checkout للتحقق من المستودع الخاص بك، actions/setup-dotnet لإعداد .NET Core SDK، coverallsapp/github-action أو codecov/codecov-action لتحميل تقارير تغطية التعليمات البرمجية.
فيما يلي نموذج سير عمل يوضح هذا النهج:
```yaml
name: Code Coverage
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: "8.0.x"
- name: Restore Dependencies
run: dotnet restore
- name: Build Solution
run: dotnet build --configuration Release
- name: Run Tests
run: dotnet test --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
- name: Upload Code Coverage Report
uses: coverallsapp/github-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
```
سيقوم سير عمل GitHub Actions هذا تلقائيا بتشغيل الاختبارات وإنشاء تقارير تغطية التعليمات البرمجية كلما تم إنشاء طلب سحب أو دفع التعليمات البرمجية إلى الفرع الرئيسي. تأكد من أن لديك الأذونات الضرورية والرموز المميزة لواجهة برمجة التطبيقات لتحميل تقارير تغطية التعليمات البرمجية إلى خدمات الجهات الخارجية مثل Coveralls أو Codecov.