For the complete documentation index, see llms.txt. This page is also available as Markdown.

Code Coverage

Upload test coverage from GitHub Actions and track it in Aikido.

Code Coverage shows how much of your code your tests actually exercise. Run your test suite in CI, upload the report, and review coverage per repository, file, and line in Aikido.

PR gating on coverage is coming soon. Today Aikido reports coverage in the dashboard. It does not fail pull requests when coverage drops.

How it works

  1. Your CI job runs tests with coverage enabled and writes one or more coverage reports.

  2. The Aikido Code Coverage GitHub Action uploads the report to Aikido.

  3. Aikido stores the report against the repository, commit SHA, and branch.

  4. The Code Coverage tab shows the latest upload for each repository.

Use cases

  • See which repositories are under-tested: compare overall coverage across the repos connected to Aikido.

  • Find gaps in a codebase: open a repository and browse uncovered files in the code tree or file list.

  • Inspect a file before you change it: open line-level coverage against the source so you know what tests already cover.

  • Track whether coverage is improving: use coverage over time as you add tests or clean up dead code.

  • Pair coverage with quality work: when a repository scan or PR check flags a file, check whether that file is tested.

Prerequisites

Before you start, make sure:

  • You're on a Basic, Pro, Advanced, or Enterprise plan. Code Coverage isn't available on the Developer plan.

  • The repository is connected to Aikido.

  • Your tests produce a coverage report. Aikido currently accepts LCOV (lcov.info). Jest and pytest-cov can write this natively. Other runners work if they can export LCOV.

Code Coverage uploads are currently available for GitHub. Support for other SCMs, including Azure DevOps, GitLab, and Bitbucket, is coming soon.

Set up the GitHub Action

Use the Aikido Code Coverage GitHub Action. It authenticates with GitHub OIDC, so no API token or repository secret is required.

After your tests write a coverage report, add a step like this:

The job that runs the action must grant id-token: write.

For the full workflow, multiple reports, monorepos, and all inputs, follow the GitHub Action README.

View coverage in Aikido

After the next successful upload:

  1. Search the repository list. Each row shows overall coverage and when it was last updated.

  2. Open a repository to see:

    • Coverage summary: covered, partial, and uncovered line counts

    • Coverage over time: how the percentage changes across uploads

    • Files: browse as a Code Tree or a flat File List

  3. Open a file to inspect line-level coverage against the source.

Source preview depends on Aikido having imported the file. If the source isn't available yet, coverage percentages still show in the file list.

Code Coverage shows repository-level trends and file-by-file coverage in one view.

Troubleshooting

  • Nothing appears in Aikido: confirm the repository is connected to Aikido, the coverage report contains at least one parseable source file, and the upload step ran.

  • Coverage looks incomplete: if you shard tests or use a matrix, merge every report into one upload per commit. See the GitHub Action README.

  • The report is rejected as too large: Aikido accepts coverage payloads up to 10 MB. Narrow the coverage output or exclude generated files before upload.

  • The action fails: check the GitHub Action README for required permissions and inputs.

Need help?

Open the Intercom chat in the bottom right corner. Our team is here to help.

Last updated

Was this helpful?