استورد ملفات تتبع 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 بكل إصداراته. لا عارض منفصل تضطر لمغادرة محررك من أجله.
البداية مجانية. يعمل Fucini Coverage Studio مجانًا خلال فترة تجريبية مدتها 14 يومًا مع فتح جميع الميزات. وبعدها لا يمنعك من الاستخدام، بل ينتقل إلى فئة Community المجانية — جميع الميزات عدا MC/DC، مع سقوف شهرية سخية على بضع منها. رقِّ خطتك في أي وقت للحصول على المجموعة بلا قيود، أو افتح كل شيء مجانًا بمشاركة القياس عن بُعد التفصيلي للاستخدام. اطّلع على الخطط →
الآتي: كل هذه التغطية في Azure DevOps، في امتداد مجاني. لا يعرض Azure DevOps التغطية على البناء إلا بقدر ما يبلغه تنسيقه هو — الأسطر، والفروع نسبةً مئوية. سيعرض Fucini DevOps Studio كل ما يقرؤه Coverage Studio: كل واحد من هذه التنسيقات الخمسة والعشرين، لكل لغة، مع MC/DC والشروط والنتيجة المركّبة والبوابات، في علامة تبويب Coverage على خط الأنابيب الذي أنتجها. تابع الأخبار لمعرفة موعد الإصدار الأول.
Screenshot 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.
تغطية Modified Condition/Decision Coverage والمناطق ونسخ C++ من llvm-cov، مع تفصيل لكل قرار عند التمرير.
متوسط توافقي مرجّح واحد عبر جميع المقاييس، بأوزان متوافقة مع مستويات IEC 61508 / ISO 26262 / DO-178C.
أحكام COMPLIANT / NON-COMPLIANT بعتبات لكل مقياس وأوضاع strict وwhm وboth أو either.
اقصر الزخارف على الأسطر التي تغيرت مقارنة بمرجع أساسي في git — مثالي لمراجعة ما غطاه طلب السحب (PR) بالضبط وما لم يغطّه.
Fucini Coverage: Run Tests with Coverage. يتعرّف على vitest وjest وpytest وgo وcargo وdotnet وmaven وgradle وphpunit وctest، ويشغّل اختباراتك مع تفعيل التغطية، ويحمّل ما تكتبه. لديك ملف تتبع بالفعل؟ يحمّله Fucini Coverage: Pick Coverage File ويتذكّره.يتطلب 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 Studio | VS Code، مدمج | Coverage Gutters | Code 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 الأصلية، بما في ذلك التصفية حسب الاختبار. هل هناك شيء قديم هنا؟ أخبرنا عبر صفحة الاتصال.
| الصيغة | ملف نموذجي |
|---|---|
| LCOV | lcov.info, *.info |
| llvm-cov JSON | llvm-cov export --format=json |
| Cobertura XML | coverage.xml |
| JaCoCo XML | jacoco.xml |
| Istanbul / nyc | coverage-final.json |
| SimpleCov (Ruby) | .resultset.json, coverage.json |
| Clover XML | clover.xml |
| OpenCover XML | coverage.opencover.xml |
| coverage.py JSON | coverage.json (coverage json) |
| gcov / gcovr JSON | gcov --json-format --stdout, gcovr --json |
| Go coverage profile | coverage.out |
| SonarQube generic | <coverage version="1"> XML |
| GNATcoverage XML (Ada) | gnatcov coverage --annotate=xml |
| BullseyeCoverage XML | covxml output |
| Visual Studio | .coveragexml (dotnet-coverage convert) |
| Coveralls JSON | coveralls.json |
| Xcode xccov JSON | xcrun xccov view --report --json |