تغطية أصلية في VS CODE وVISUAL STUDIO

تغطية تعيش داخل محررك

استورد ملفات تتبع lcov وllvm-cov JSON وCobertura وJaCoCo وIstanbul وSimpleCov وClover وOpenCover وcoverage.py وgcov وGo وCoveralls وSonarQube وGNATcoverage وBullseye وVisual Studio وXcode وVectorCAST وTestwell CTC++‎ وTRACE32 وEMMA وUCIS/UCDB وNCover وdotCover، وطبّعها في نموذج قياسي واحد، وادمج التشغيلات بشكل حتمي، واقرأ النتيجة مباشرة من هوامش المحرر — في VS Code، وفي Visual Studio 2022 و2026 بكل إصداراته. لا عارض منفصل تضطر لمغادرة محررك من أجله.

تنزيل VSIX اقرأ دليل المستخدم استكشف الميزات

البداية مجانية. يعمل Fucini Coverage Studio مجانًا خلال فترة تجريبية مدتها 14 يومًا مع فتح جميع الميزات. وبعدها لا يمنعك من الاستخدام، بل ينتقل إلى فئة Community المجانية — جميع الميزات عدا MC/DC، مع سقوف شهرية سخية على بضع منها. رقِّ خطتك في أي وقت للحصول على المجموعة بلا قيود، أو افتح كل شيء مجانًا بمشاركة القياس عن بُعد التفصيلي للاستخدام. اطّلع على الخطط →

الآتي: كل هذه التغطية في Azure DevOps، في امتداد مجاني. لا يعرض Azure DevOps التغطية على البناء إلا بقدر ما يبلغه تنسيقه هو — الأسطر، والفروع نسبةً مئوية. سيعرض Fucini DevOps Studio كل ما يقرؤه Coverage Studio: كل واحد من هذه التنسيقات الخمسة والعشرين، لكل لغة، مع MC/DC والشروط والنتيجة المركّبة والبوابات، في علامة تبويب Coverage على خط الأنابيب الذي أنتجها. تابع الأخبار لمعرفة موعد الإصدار الأول.

Covered/uncovered gutters with the Test Coverage panel openScreenshot pending — add assets/img/hero.png (see SCREENSHOTS.md).

حين يكتب الذكاء الاصطناعي الاختبارات

مجموعة اختبارات مولّدة تبدو شاملة. التغطية تخبرك إن كانت كذلك فعلًا.

يكتب لك نموذج لغوي مجموعة اختبارات في ثوانٍ، وتُقرأ بشكل مقنع. ما لا يستطيع إخبارك به هو ما إذا كانت تلك الاختبارات تصل إلى شيء ذي أهمية — ولا تستطيع تغطية الأسطر ذلك أيضًا، لأن اختبارًا بلا أي تأكيد على الإطلاق يُضيء مع ذلك كل سطر يمر به.

◆ قرارات، لا أسطر فحسب

تُظهر MC/DC وتغطية الفروع ما إذا كان كل قرار قد نُفّذ فعلًا، لا مجرد بلوغ السطر. تسلك الاختبارات المولّدة عادةً المسار السعيد وتترك الجانب الآخر من كل if دون مساس — وهو ما يُقرأ كتغطية أسطر 100% وتغطية فروع 50%. تلك الفجوة هي النتيجة.

◆ دوال لم تُستدعَ قط

يسرد كشف الشيفرة الميتة الدوال التي لم يبلغها أي اختبار. تذكرها المجموعة المولّدة في عناوين اختباراتها ولا تصل إليها أبدًا، وهو أمر غير مرئي في تشغيل أخضر بالكامل.

◆ مرتبط بالتغيير الذي أمامك

تقيس تغطية الفروق ما تغيّر فقط مقابل أساس git، فيتحوّل «الاختبارات تنجح» إلى «الشيفرة التي قبلتها للتو مُختبَرة». تعمل بالطريقة نفسها سواء كتبها إنسان أو مساعد.

لا شيء من هذا يثبت أن اختبارًا ما جيد — لا شيء يستطيع ذلك. إنه يخبرك بدقة وسطرًا بسطر بما لم يُنفَّذ قط: الجزء الذي لا يستطيع المراجع الاحتفاظ به في ذهنه ولن يذكره المساعد من تلقاء نفسه. يعمل مع TypeScript وJavaScript عبر Vitest أو Jest أو nyc، ومع C وC++ وJava وRuby عبر ملفات التتبع التي تنتجها تلك الأدوات أصلًا.

ما الذي يميزنا

نموذج واحد، كل صيغة، بلا عارض مخصص

◆ خمس وعشرون صيغة للإدخال

LCOV وllvm-cov JSON وCobertura وJaCoCo وIstanbul/nyc وSimpleCov وClover وOpenCover وcoverage.py وgcov JSON والنص العادي وGo وCoveralls وSonarQube وGNATcoverage وBullseye وVisual Studio وXcode وVectorCAST وTestwell CTC++ وTRACE32 وEMMA وUCIS/UCDB وNCover وdotCover — يتم اكتشافها تلقائيًا ودمجها بشكل حتمي مع تسجيل المصدر.

◆ واجهة مستخدم أصلية للإخراج

مؤشرات الأسطر والفروع والدوال، ومسطرة النظرة العامة، وشارات المستكشف، وعرض Covered Files.

◆ MC/DC والمناطق

تغطية Modified Condition/Decision Coverage والمناطق ونسخ C++ من llvm-cov، مع تفصيل لكل قرار عند التمرير.

◆ درجة موزونة حسب السلامة

متوسط توافقي مرجّح واحد عبر جميع المقاييس، بأوزان متوافقة مع مستويات IEC 61508 / ISO 26262 / DO-178C.

◆ بوابة الامتثال

أحكام COMPLIANT / NON-COMPLIANT بعتبات لكل مقياس وأوضاع strict وwhm وboth أو either.

◆ تغطية الفروقات

اقصر الزخارف على الأسطر التي تغيرت مقارنة بمرجع أساسي في git — مثالي لمراجعة ما غطاه طلب السحب (PR) بالضبط وما لم يغطّه.

جاهز للعمل في 30 ثانية

  1. ثبّت الإضافة وافتح مشروعك.
  2. شغّل اختباراتك — لوحة الأوامر → Fucini Coverage: Run Tests with Coverage. يتعرّف على vitest وjest وpytest وgo وcargo وdotnet وmaven وgradle وphpunit وctest، ويشغّل اختباراتك مع تفعيل التغطية، ويحمّل ما تكتبه. لديك ملف تتبع بالفعل؟ يحمّله Fucini Coverage: Pick Coverage File ويتذكّره.
  3. افتح ملفًا مصدريًا — يُظهر الهامش الأسطر التي نُفّذت، وشريط الحالة نسبة الملف، والتمرير فوق السطر عدد مرات تنفيذه، ويظهر التشغيل في عرض Coverage وفي لوحة Test Coverage الخاصة بـ VS Code. بعد ذلك يُعاد التحميل تلقائيًا كلما تغيّر ملف التتبع.

يتطلب VS Code ≥ 1.88، أو Visual Studio 2022 أو 2026 — Community أو Professional أو Enterprise — إضافةً إلى ملف تتبع تغطية ينتجه مشروعك أصلًا. في Visual Studio 2022 التغطية المدمجة حكر على Enterprise؛ أما Coverage Studio لـ Visual Studio فيعرضها على Community وProfessional أيضًا، من الملف الذي يكتبه بناؤك أصلًا.

مقارنة بالبدائل

يعرض VS Code نفسه وعدة إضافات مجانية التغطية أيضًا. هذا ما تقوله الوثائق الخاصة بكل منها عمّا يفعله، حتى سبتمبر 2026 — وحيث لا يذكر ملف README شيئًا، يقول الجدول ذلك بدلًا من التخمين.

Fucini Coverage StudioVS Code، مدمجCoverage GuttersCode Coverage (markis)Gcov Viewer
مصدر التغطية25 تنسيقًا لملفات التتبع، إضافةً إلى تقارير الطفرات من PIT وStrykerإضافة اختبار تُبلغ عن التغطيةملفات lcov وXMLملفات lcovملفات .gcda من GCC، عبر gcov
الأسطر غير المغطاة في المحرر✓✓✓✓، وفي Problems أيضًا✓
تغطية الفروع، لكل فرع✓عندما تُبلغ عنها إضافة الاختبارغير موصوفغير موصوفغير موصوف
MC/DC✓ (Pro)—غير موصوفغير موصوفغير موصوف
دمج عدة ملفات تتبع، ومعرفة أيها غطّى كل سطر✓—يدعم عدة ملفاتغير موصوفغير موصوف
يعيد التحميل عند تغيّر ملف التتبع✓يعرض آخر تشغيل للاختبارات✓غير موصوفغير موصوف
تغطية التغييرات والحدود والسجل✓تُعرض التغطية في محرر الفروقغير موصوفغير موصوفغير موصوف
تقرير HTMLمُولَّد، باستضافة ذاتية—يعاين تقريرًا موجودًاغير موصوفغير موصوف
التغطية لوكلاء الذكاء الاصطناعي: أدوات نموذج اللغة وخادم MCP✓غير موصوفغير موصوفغير موصوفغير موصوف
الاختبارات التي نفّذت سطرًا، والاختبارات التي تتأثر بتغييراتك✓تغطية لكل اختبار، عندما يبلّغ عنها امتداد الاختبارغير موصوفغير موصوفغير موصوف
نتائج اختبار الطفرات في المحرر✓ (PIT, Stryker)غير موصوفغير موصوفغير موصوفغير موصوف
بوابة على الكود الجديد✓غير موصوفغير موصوفغير موصوفغير موصوف
الأرقام نفسها في Visual Studio وعلى سطر الأوامر✓—غير موصوفغير موصوفغير موصوف

ليس الأمر خيارًا بين هذا وعرض VS Code: فكل تحميل يُنشر أيضًا في لوحة Test Coverage الأصلية، بما في ذلك التصفية حسب الاختبار. هل هناك شيء قديم هنا؟ أخبرنا عبر صفحة الاتصال.

الصيغ المدعومة

الصيغةملف نموذجي
LCOVlcov.info, *.info
llvm-cov JSONllvm-cov export --format=json
Cobertura XMLcoverage.xml
JaCoCo XMLjacoco.xml
Istanbul / nyccoverage-final.json
SimpleCov (Ruby).resultset.json, coverage.json
Clover XMLclover.xml
OpenCover XMLcoverage.opencover.xml
coverage.py JSONcoverage.json (coverage json)
gcov / gcovr JSONgcov --json-format --stdout, gcovr --json
Go coverage profilecoverage.out
SonarQube generic<coverage version="1"> XML
GNATcoverage XML (Ada)gnatcov coverage --annotate=xml
BullseyeCoverage XMLcovxml output
Visual Studio.coveragexml (dotnet-coverage convert)
Coveralls JSONcoveralls.json
Xcode xccov JSONxcrun xccov view --report --json
شاهد كل ميزة دليل المستخدم الكامل