{"id":49600251,"url":"https://github.com/kool7/coverage-visualizer","last_synced_at":"2026-05-21T21:10:18.062Z","repository":{"id":353801189,"uuid":"1215294140","full_name":"kool7/coverage-visualizer","owner":"kool7","description":"VS Code extension that visualizes Python test coverage inline — highlights, CodeLens, dashboard, and sidebar tree view","archived":false,"fork":false,"pushed_at":"2026-05-03T17:06:26.000Z","size":19515,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T19:06:08.053Z","etag":null,"topics":["code-coverage","coverage-report","python-code-coverage","testing-coverage","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kool7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-19T18:22:59.000Z","updated_at":"2026-05-03T17:04:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kool7/coverage-visualizer","commit_stats":null,"previous_names":["kool7/coverage-visualizer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kool7/coverage-visualizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kool7%2Fcoverage-visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kool7%2Fcoverage-visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kool7%2Fcoverage-visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kool7%2Fcoverage-visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kool7","download_url":"https://codeload.github.com/kool7/coverage-visualizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kool7%2Fcoverage-visualizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32600968,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-coverage","coverage-report","python-code-coverage","testing-coverage","vscode","vscode-extension"],"created_at":"2026-05-04T09:00:30.288Z","updated_at":"2026-05-21T21:10:18.054Z","avatar_url":"https://github.com/kool7.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Coverage Visualizer\n\n\u003e Know which lines your tests missed — without leaving the editor.\n\nYou run `pytest`. You get 73%. But 27% of what? Finding uncovered lines means opening a browser report, hunting for your file, and mentally mapping line numbers back to your code. Coverage Visualizer cuts all of that — green and red highlights appear inline, right where you write, the moment you run your tests.\n\n![Coverage Visualizer in action](assets/demo.gif)\n\n---\n\n## Features\n\n**Auto-run on test save** — write a test, hit save, and pytest runs automatically in the background. No terminal, no command — the extension detects the file change, waits 2 seconds for you to finish typing, then kicks off a full coverage run. The status bar shows a spinner while it runs so you always know something is happening. Turn it off via `autoRunOnTestChange` if your suite is too slow to run on every save.\n\n\u003cimg src=\"assets/feature-auto-run.png\" width=\"420\" /\u003e\n\n**Inline highlights** — covered lines get a green background, missed lines get red, and overview ruler markers appear along the right edge so you can spot gaps in a file without scrolling a single line. Open any Python file after running coverage and the highlights are already there.\n\n\u003cimg src=\"assets/feature-highlights.png\" width=\"700\" /\u003e\n\n**Interactive dashboard** — a full coverage report inside VS Code, no browser needed. The ring chart shows your overall percentage at a glance; the file table lists every file sorted by coverage with a progress bar per row. Click any filename and the editor jumps straight to that file.\n\n\u003cimg src=\"assets/feature-dashboard.png\" width=\"700\" /\u003e\n\n**CodeLens** — a coverage percentage appears above every `def` and `class` as you work, updated live whenever coverage changes. At a glance you can see which functions are well-tested and which are being ignored, without opening any report.\n\n\u003cimg src=\"assets/feature-codelens.png\" width=\"600\" /\u003e\n\n**Sidebar tree view** — the Coverage panel in the Explorer sidebar stays open as you work and shows every file with a green check, yellow warning, or red cross depending on your configured thresholds. No need to open the dashboard to know where you stand.\n\n\u003cimg src=\"assets/feature-sidebar.png\" width=\"380\" /\u003e\n\n**Hover tooltips** — hover any highlighted line and a tooltip confirms whether that exact line is covered or not. Useful when you want to verify that a specific branch or edge case was actually exercised by your tests.\n\n\u003cimg src=\"assets/feature-hover.png\" width=\"500\" /\u003e\n\n**Status bar** — your overall coverage percentage sits in the bottom status bar at all times. Click it to open the dashboard. When a coverage run is in progress the percentage is replaced with a spinner so you know it's updating.\n\n\u003cimg src=\"assets/feature-status-bar.png\" width=\"420\" /\u003e\n\n---\n\n## Supported Formats\n\n| Format          | How to generate                             |\n| --------------- | ------------------------------------------- |\n| `coverage.json` | `pytest --cov=. --cov-report=json`          |\n| `coverage.xml`  | `pytest --cov=. --cov-report=xml`           |\n| `.coverage`     | `pytest --cov=.` (raw SQLite, no JSON step) |\n\nNo Python runtime required — the extension reads all three formats natively.\n\n---\n\n## Installation\n\nSearch for **Python Coverage Visualizer** in the Extensions panel (`Cmd+Shift+X` / `Ctrl+Shift+X`) and click Install.\n\n---\n\n## Quick Start\n\n1. Install pytest-cov in your Python project:\n\n   ```bash\n   pip install pytest-cov\n   ```\n\n2. Open the Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) and run **Coverage Visualizer: Show Coverage**. The extension runs pytest and generates coverage automatically.\n\n3. Green and red highlights appear across all open Python files immediately.\n\nFrom this point, save any test file and coverage updates on its own — no command needed.\n\n---\n\n## Commands\n\n| Command                               | What it does                                     |\n| ------------------------------------- | ------------------------------------------------ |\n| `Coverage Visualizer: Show Coverage`  | Load coverage and apply highlights to open files |\n| `Coverage Visualizer: Show Dashboard` | Open the interactive coverage dashboard          |\n| `Coverage Visualizer: Clear Coverage` | Remove all highlights and reset state            |\n\n---\n\n## Configuration\n\nOpen **Settings** (`Cmd+,`) and search for **Coverage Visualizer**, or add to `settings.json`:\n\n| Setting                                      | Default                   | Description                                                                           |\n| -------------------------------------------- | ------------------------- | ------------------------------------------------------------------------------------- |\n| `coverageVisualizer.autoRunOnTestChange`     | `true`                    | Re-run pytest automatically when a test file is saved                                 |\n| `coverageVisualizer.autoReloadOnChange`      | `true`                    | Auto-reload decorations when coverage files change on disk                            |\n| `coverageVisualizer.thresholdGood`           | `80`                      | % at or above which a file shows green in the sidebar                                 |\n| `coverageVisualizer.thresholdWarn`           | `50`                      | % at or above which a file shows yellow (below → red)                                 |\n| `coverageVisualizer.excludeTestFiles`        | `true`                    | Skip highlights and CodeLens on test files (`test_*.py`, `*_test.py`, `tests/` dirs) |\n| `coverageVisualizer.enableCodeLens`          | `true`                    | Show coverage % above `def` / `class` definitions                                     |\n| `coverageVisualizer.enableHoverMessages`     | `true`                    | Show covered / not-covered tooltip on hover                                           |\n| `coverageVisualizer.coveredHighlightColor`   | `rgba(0, 180, 0, 0.10)`   | Background color for covered lines                                                    |\n| `coverageVisualizer.uncoveredHighlightColor` | `rgba(220, 50, 50, 0.10)` | Background color for uncovered lines                                                  |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkool7%2Fcoverage-visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkool7%2Fcoverage-visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkool7%2Fcoverage-visualizer/lists"}