> ## Documentation Index
> Fetch the complete documentation index at: https://openidea.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Coverage

> Run a configuration with coverage and see covered, partly covered and uncovered lines in the editor, the project view and the Coverage tool window.

**Run with Coverage** runs a [run configuration](https://openidea.sh/en/guide/run.md) under its runtime's coverage tool, then reads the report and shows it in three places:

* **Editor gutter**: a stripe per line. Green is covered, yellow is partly covered (not every branch or block ran), red is not covered. Hover a stripe for the hit count and branch count.
* **Project view**: a percentage of covered lines next to each file and folder.
* **Coverage tool window**: a tree of folders and files with **Line, %** and **Branch, %** columns. Click a column header to sort; open a file from the tree.

## Run with coverage

**1. Pick a configuration**

Select a test or program configuration in the run widget, or put the caret in a test or `main` function.

**2. Start the run**

Use **Run › Run with Coverage**, or choose **Run '…' with Coverage** from the gutter run icon menu or the run
widget's **More Actions** menu. **Run Context Configuration with Coverage** (in **Find Action…**, `⌘⇧A` /
`Ctrl+Shift+A`) covers the test or program at the caret.

**3. Read the results**

When the run finishes, the Coverage tool window opens and a notification shows the share of covered lines.

If the coverage tool is missing, a notification names it and offers **Install**, which runs the install command in the Run tool window. Configurations the IDE does not know how to cover get a notification that explains why.

## Supported runtimes

| Runtime | Configurations | Coverage tool |
| - | - | - |
| Rust | `cargo test`, `cargo run`, `cargo nextest` | `cargo llvm-cov` (install `cargo-llvm-cov` and the `llvm-tools-preview` rustup component) |
| Go | `go test` | `go test -coverprofile` |
| Java / Kotlin (Maven) | Maven configurations that run tests (`test`, `verify`) | JaCoCo Maven plugin goals |
| Java / Kotlin (Gradle) | Gradle configurations that run tests (`test`, `check`) | JaCoCo, applied through an init script |
| JavaScript / TypeScript | `package.json` test scripts that run vitest or jest (npm, pnpm, yarn, bun) | The runner's own `--coverage` (vitest needs `@vitest/coverage-v8` or `@vitest/coverage-istanbul`) |
| Node.js | `node`, `npx`, `tsx`, `ts-node` programs | `c8` |
| Python | scripts, modules, pytest | coverage.py (`coverage run --branch`) in the project's interpreter |
| Ruby | rspec, minitest, rake, rails and plain scripts | SimpleCov (in the Gemfile for Bundler projects) |

Not supported:

* Plain `java` applications: run a Maven or Gradle test configuration with coverage instead.
* `go run`: Go coverage is collected by `go test`.
* Deno tasks.

> [!NOTE]
>
> The IDE does not add anything to your project files. For Gradle it passes a temporary init script; for Ruby projects
> without their own SimpleCov setup it preloads SimpleCov through the environment. Installing a missing tool (for
> example `bundle add simplecov --group test` or `uv add --dev coverage`) does change the project, so the IDE only runs
> it when you click **Install**.

## Import a report from CI

**Import a Coverage Report…** (in **Find Action…**, or the link in the empty Coverage tool window) shows a report collected elsewhere. The format is detected from the content:

* lcov tracefile (`lcov.info`)
* Go cover profile
* JaCoCo XML report
* SimpleCov `.resultset.json`

File paths recorded on another machine are mapped into the project by their longest matching suffix.

## Manage suites

Each coverage run or imported report is a suite. The last five runs stay available as tabs in the Coverage tool window header.

**Manage Coverage Reports…** (`⌘⌥F6` / `Ctrl+Alt+F6`) opens the **Coverage Reports** dialog: choose a suite and click **Show Selected**, **Delete** a suite, or **Import…** more reports. Imported reports are remembered per project.

To remove the highlighting, use **Run › Hide Coverage** or the button in the Coverage tool window. **Show Coverage** brings the selected suite back. Editor stripes follow your edits until the next run.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.