טענו קובצי 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 קורא: כל אחד מ-25 הפורמטים האלה, לכל שפה, עם MC/DC, תנאים, הציון המשולב והספים, כלשונית Coverage בצינור שהפיק אותה. עקבו אחר החדשות לקראת הגרסה הראשונה.
Screenshot pending — add assets/img/hero.png (see SCREENSHOTS.md).כשבינה מלאכותית כתבה את הבדיקות
מודל שפה יכתוב לכם חבילת בדיקות תוך שניות, והיא תיקרא משכנעת. מה שהוא לא יכול לומר לכם הוא אם הבדיקות האלה מגיעות למשהו שחשוב — וגם כיסוי שורות לא יכול, כי בדיקה ללא ולו טענה אחת עדיין מדליקה כל שורה שהיא נוגעת בה.
MC/DC וכיסוי ענפים מראים אם כל החלטה אכן הופעלה, ולא רק אם השורה נגעה. בדיקות שנוצרו אוטומטית הולכות במסלול הנוח ומשאירות את הצד השני של כל if ללא נגיעה — מה שנקרא ככיסוי שורות של 100% וכיסוי ענפים של 50%. הפער הזה הוא הממצא.
זיהוי קוד מת מונה את הפונקציות שאף בדיקה לא הגיעה אליהן. חבילה שנוצרה אוטומטית מזכירה אותן בכותרות הבדיקות ולעולם לא מגיעה אליהן, וזה בלתי נראה בהרצה ירוקה.
כיסוי diff מודד רק את מה שהשתנה מול בסיס 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, מתוך הקובץ שה-build שלכם כבר כותב.
גם 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 | נוצר, מתארח אצלכם | — | מציג תצוגה מקדימה של דוח קיים | לא מתואר | לא מתואר |
| כיסוי לסוכני AI: כלי מודל שפה ושרת 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 |