Suggest a tool

Category guides · published

"Best open source code coverage tools": 11 listed, sorted by GitHub stars

Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.

This guide covers the whole CI and reporting category, following the definition in the FreeQATools category list. Code coverage tools are one group in it; the category also lists CI test-result reporters and test-run tooling used in pipelines. The table below is sorted by GitHub stars on the fetch date.

Code coverage tools by language

The coverage tools in the category are grouped here by language. Coverage.py measures Python code on CPython and PyPy3 (README). JaCoCo measures Java code (README).

c8 measures JavaScript through the native V8 coverage built into Node.js (README). nyc is the command-line client for Istanbul, which instruments code with line counters (nyc). c8 reaches TypeScript through source maps (README). nyc also reaches TypeScript through source maps (README).

The documented report formats overlap. Coverage.py writes text, HTML, XML, LCOV and JSON (docs). JaCoCo writes HTML, XML and CSV (docs). nyc reporters include cobertura, lcov, html and teamcity (docs). c8 output works with the Istanbul reporters (README).

c8 can fail a run when coverage drops below set thresholds (c8). nyc can also fail a run when coverage drops below set thresholds (nyc). Coverage.py uses line coverage by default, with branch coverage as an option (Coverage.py).

Test-result reporters in GitHub Actions

Some reporters in the category run as GitHub Actions workflow steps. action-junit-report reads JUnit XML reports and publishes a pull request check with annotations (README). publish-unit-test-result-action reads JUnit, NUnit and XUnit XML, TRX files, and JSON from Dart and Mocha (README). Test Reporter parses XML or JSON result files from runners such as dotnet test, go test, Jest and pytest (README).

The three GitHub Actions reporters publish different outputs on GitHub. publish-unit-test-result-action posts a pull request comment, a check run, annotations and a job summary (README). Test Reporter publishes a check run or an Actions job summary as Markdown (README). action-junit-report has an annotate-only mode for forks and read-only tokens (action-junit-report).

Report generators, servers and test-run tooling

Allure Report converts result files written by framework integrations into HTML reports (Allure Report). Its CLI builds reports with allure generate and allure serve (docs). ReportPortal is a self-hosted server installed with Docker or Kubernetes (docs). It receives results from framework agents and imports JUnit or Robot Framework XML files (docs).

Lighthouse CI runs Lighthouse in continuous integration and asserts against the results (Lighthouse CI). Its getting-started guide has configs for GitHub Actions, GitLab CI, Jenkins and other CI providers (docs).

gotestsum runs go test -json and prints formatted output with a run summary (gotestsum). Its --junitfile option writes JUnit XML for CI systems (README).

How this list is sorted

The quoted title is a search query, not a verdict. FreeQATools does not rank tools by opinion. The list below is sorted by GitHub stars, descending, as fetched from the repository host API on the date shown with each value.

Stars count how many accounts have starred a repository. They say nothing about fit for a given project, so the documented facts under each tool are the part to compare.

Every tool here meets the inclusion rules: an OSI-approved license, a public repository, software testing or quality as its primary purpose and at least one release or tag. Each status badge follows the status rules on the methodology page.

Open-source CI and reporting tools by GitHub stars

CI and reporting tools. Sorted by GitHub stars, descending. Select a column heading to change the sort.
Lighthouse CI7,09412025-06-261v0.15.12025-06-261Apache-2.0JavaScriptinactive
nyc5,75912026-02-221nyc-v18.0.02026-05-171ISCJavaScriptslow
Allure Report5,54112026-09-0312.46.12026-09-031Apache-2.0HTMLactive
JaCoCo4,60312026-06-051v0.8.152026-09-151EPL-2.0Javaactive
Coverage.py3,40912026-09-1317.16.12026-09-211Apache-2.0Pythonactive
gotestsum2,72112025-09-111v1.13.02026-04-151Apache-2.0Goslow
c82,12112026-07-141v12.0.02026-07-141ISCJavaScriptactive
ReportPortal2,03112026-08-14126.0.52026-08-141Apache-2.0Makefileactive
Test Reporter1,18312026-03-211v3.0.02026-09-211MITTypeScriptactive
publish-unit-test-result-action75112026-06-151v2.24.02026-09-171Apache-2.0Pythonactive
action-junit-report42812026-08-281v6.5.02026-09-081Apache-2.0TypeScriptactive

1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.

Filters for language, license and status are on the ci and reporting category page.

Tools in this list

Each entry gives the tool's one-line summary from its README and the facts its documentation states for this category, each with its source. Facts that are not documented are left out here and marked on the comparison pages.

  1. Lighthouse CI

    Tool suite that runs, stores and asserts against Lighthouse results in CI, with a server and dashboard. README, read 2026-09-22

    Languages or inputs covered
    URLs, or HTML files in a static build directory (staticDistDir) source: Docs: Configuration
    Framework integrations
    Puppeteer scripts that prepare the browser before Lighthouse runs (puppeteerScript) source: Docs: Configuration
    CI integration
    Guide with configs for GitHub Actions, Travis CI, CircleCI, GitLab CI, Jenkins, Google Cloud Build source: Docs: Getting Started
    Report formats
    Lighthouse JSON and HTML reports with a manifest.json (filesystem target); LHCI server or temporary public storage source: Docs: Configuration
    Install method
    npm (npm install -g @lhci/cli) source: README
  2. nyc

    Command-line client for Istanbul that collects JavaScript and TypeScript code coverage while test suites run. README, read 2026-09-22

    Languages or inputs covered
    JavaScript (ES5, ES2015+); Babel and TypeScript through source maps source: README
    Framework integrations
    tap, mocha, AVA source: README
    CI integration
    Codecov upload guide with a Travis CI example source: Docs: Integrating with codecov.io
    Report formats
    clover, cobertura, html, json, json-summary, lcov, lcovonly, teamcity, text, text-lcov, text-summary source: Docs: Using Alternative Reporters
    Install method
    npm or yarn dev dependency (npm i -D nyc) source: README
  3. Allure Report

    Framework-agnostic test report tool that turns results from many languages and frameworks into interactive HTML reports. README, read 2026-09-22

    Languages or inputs covered
    Result files written by framework integrations to the allure-results directory source: Docs: How to generate a report
    Framework integrations
    Integrations for JUnit 4, JUnit 5, TestNG, Cucumber-JVM, pytest, Jest, Mocha, Playwright, Cypress, NUnit, xUnit.net, RSpec and others source: Docs: Frameworks
    CI integration
    Integrations for Azure DevOps, Bamboo, Jenkins and TeamCity source: Docs: Integrations
    Report formats
    HTML report; CSV export source: Docs: Export to CSV
    Install method
    Homebrew (brew install allure), Scoop (scoop install allure) or release archives source: README
  4. JaCoCo

    Code coverage library for Java with Maven, Ant and command line integrations. README, read 2026-09-22

    Languages or inputs covered
    Java code source: README
    Framework integrations
    Apache Ant, Apache Maven, Gradle, sbt, Arquillian, Eclipse, IntelliJ IDEA, NetBeans source: Docs: Integration Matrix
    CI integration
    Jenkins, TeamCity, Azure DevOps and Shippable (third-party integrations) source: Docs: Integration Matrix
    Report formats
    HTML, XML, CSV source: Docs: Command Line Interface
    Install method
    Maven plug-in org.jacoco:jacoco-maven-plugin source: Docs: Maven Plug-in
  5. Coverage.py

    Code coverage measurement tool for Python with line and branch coverage and several report formats. README, read 2026-09-22

    Languages or inputs covered
    Python code (CPython 3.10 to 3.15, PyPy3) source: README
    Framework integrations
    pytest, unittest, nose; pytest-cov plugin source: Docs: Coverage.py
    CI integration
    Linked GitHub Actions guides; python-coverage-comment-action for pull request comments source: Docs: Other resources
    Report formats
    Text, HTML, XML, LCOV, JSON source: Docs: Coverage.py
    Install method
    pip (python3 -m pip install coverage) source: Docs: Coverage.py
  6. gotestsum

    Go test runner that formats go test -json output, prints summaries and writes JUnit XML for CI. README, read 2026-09-22

    Languages or inputs covered
    Go test output (go test -json) source: README
    Framework integrations
    go test with any flags; compiled Go test binaries; scripts via --raw-command source: README
    CI integration
    JUnit XML file (--junitfile) for CI systems source: README
    Report formats
    JUnit XML (--junitfile); test2json JSON file (--jsonfile); terminal formats such as dots, pkgname, testdox source: README
    Install method
    go install gotest.tools/gotestsum@latest, or a release binary source: README
  7. c8

    Code coverage CLI for Node.js built on native V8 coverage, with output compatible with Istanbul reporters. README, read 2026-09-22

    Languages or inputs covered
    JavaScript run in Node.js through native V8 coverage; TypeScript and JSX through source maps source: README
    Report formats
    Istanbul reporters (default text); Monocart v8 and console-details reporters (experimental) source: README
    Install method
    npm (npm i c8 -g) source: README
  8. ReportPortal

    TestOps service that collects test results, logs and artifacts, with AI-based defect triage. README, read 2026-09-22

    Languages or inputs covered
    Test results sent by framework agents; imported JUnit or Robot Framework XML files source: Docs: Import data to ReportPortal
    Framework integrations
    JavaScript agents for Playwright, CucumberJS, CodeceptJS, WebdriverIO, Cypress, Mocha, Jest, Vitest, Nightwatch, Jasmine and others source: Docs: JavaScript integration
    CI integration
    Jenkins guide for passing parameters as system variables source: Docs: Tuning CI tool
    Report formats
    Launch report export as PDF, XLS or HTML source: Docs: Operations under launches
    Install method
    Docker Compose (docker compose -p reportportal up) source: README
  9. Test Reporter

    GitHub Action that turns XML or JSON test results into check runs, job summaries and code annotations. README, read 2026-09-22

    Languages or inputs covered
    Test result files in XML or JSON format source: README
    Framework integrations
    dotnet test (xUnit, NUnit, MSTest), Dart, Flutter, go test, JUnit, Jest, Mocha, pytest, unittest, PHPUnit, Nette Tester, RSpec, Swift source: README
    CI integration
    GitHub Actions: check runs and job summaries source: README
    Report formats
    GitHub Check Run or Actions job summary as Markdown text source: README
    Install method
    GitHub Actions workflow step (uses: dorny/test-reporter@v3) source: README
  10. publish-unit-test-result-action

    GitHub Action that publishes JUnit, NUnit, XUnit, TRX and JSON test results on GitHub. README, read 2026-09-22

    Languages or inputs covered
    JSON (Dart, Mocha), TRX (MSTest, VS) and XML (JUnit, NUnit, XUnit) test result files source: README
    Framework integrations
    Examples table: Dart, Jest, Maven, Mocha, MSTest/dotnet, pytest, sbt source: README
    CI integration
    GitHub Actions on Linux, macOS and Windows runners source: README
    Report formats
    PR comment, check run, annotations, job summary; results as JSON via step output or file source: README
    Install method
    GitHub Actions workflow step (uses: EnricoMi/publish-unit-test-result-action@v2) source: README
  11. action-junit-report

    GitHub Action that turns JUnit XML test reports into pull request checks with inline failure annotations and summaries. README, read 2026-09-22

    Languages or inputs covered
    JUnit XML test reports source: README
    Framework integrations
    Report path examples for Surefire and sbt source: README
    CI integration
    GitHub Actions, reporting as a pull request check source: README
    Report formats
    Pull request check with summary and annotations source: README
    Install method
    GitHub Actions workflow step (uses: mikepenz/action-junit-report@v6) source: README

Comparisons in this category