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
| Lighthouse CI | 7,0941 | 2025-06-261v0.15.1 | 2025-06-261 | Apache-2.0 | JavaScript | inactive |
|---|---|---|---|---|---|---|
| nyc | 5,7591 | 2026-02-221nyc-v18.0.0 | 2026-05-171 | ISC | JavaScript | slow |
| Allure Report | 5,5411 | 2026-09-0312.46.1 | 2026-09-031 | Apache-2.0 | HTML | active |
| JaCoCo | 4,6031 | 2026-06-051v0.8.15 | 2026-09-151 | EPL-2.0 | Java | active |
| Coverage.py | 3,4091 | 2026-09-1317.16.1 | 2026-09-211 | Apache-2.0 | Python | active |
| gotestsum | 2,7211 | 2025-09-111v1.13.0 | 2026-04-151 | Apache-2.0 | Go | slow |
| c8 | 2,1211 | 2026-07-141v12.0.0 | 2026-07-141 | ISC | JavaScript | active |
| ReportPortal | 2,0311 | 2026-08-14126.0.5 | 2026-08-141 | Apache-2.0 | Makefile | active |
| Test Reporter | 1,1831 | 2026-03-211v3.0.0 | 2026-09-211 | MIT | TypeScript | active |
| publish-unit-test-result-action | 7511 | 2026-06-151v2.24.0 | 2026-09-171 | Apache-2.0 | Python | active |
| action-junit-report | 4281 | 2026-08-281v6.5.0 | 2026-09-081 | Apache-2.0 | TypeScript | active |
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.
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
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
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
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
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
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
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
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
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
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
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