Skip to content
SPECIFICTION
Get listed

Coverage.py vs Coveralls

Coverage.py

coverage.readthedocs.io

Coveralls

coveralls.io

Side by side

FigureCoverage.pyCoveralls
Price fromFree$10/mo
Free planYesYes
Free trial—Yes
Open sourceYes—
Web—Yes
WindowsYes—
macOSYes—
LinuxYesYes
APIYesYes
Self-hostedYesYes
Plans published210
Spec score · Test Coverage Tools8.9 (#2)8.6 (#3)
IntegrationsOfficial examples cover pytest, unittest, and nose, and pytest commonly uses the pytest-cov plugin.Coveralls says it works with any CI service and offers over 30 community-created integrations plus a GitHub Action and CircleCI Orb.
PurposeCoverage.py measures which parts of Python programs ran and identifies executable code that did not run, commonly to gauge test effectiveness.Coveralls analyzes test coverage to show which parts of code are not covered by tests.
SupportUsers can seek help on the Python discussion forums or Python Discord, report bugs on GitHub, and obtain professional support through Tidelift Subscription.The pricing page offers a $200/month Support add-on with premium support, priority response, and live chat.

Plans

Coverage.py

  • Coverage.pyFree
  • FreeFree

Coverage.py pricing →

Coveralls

  • Open SourceFree
  • Starter$10 a month
  • Usage add-on$30 a month
  • Enterprise Cloud$35 a month
  • Org$50 a month
  • Org+$100 a month
  • Pro$200 a month
  • Support add-on$200 a month
  • Unlimited$400 a month
  • Cloud Premium$800 a month

Coveralls pricing →

In their own words

Coverage.py

Coverage.py measures which parts of Python programs run and highlights executable code that remains untouched, helping developers assess what their tests exercise. It measures statement coverage by default and can also track branch coverage. Reports are available as text, HTML, XML, LCOV, and JSON. Dynamic contexts can associate lines of execution with the test function that ran them. Coverage.py can run test suites through their usual command; pytest-cov is available but the documentation says most users do not need it. Third-party plugins can extend measurement to non-Python files, such as connecting executed Python to Django templates. Data is stored in a SQLite database, and advanced use can rely on its API. The current documentation lists Python 3.10 through 3.15 rc2 and PyPy3 versions 3.10 and 3.11. The tool provides ctrace, pytrace, and sysmon measurement cores; sysmon is faster for simple line and branch coverage but lacks support for dynamic contexts and plugins. Coverage.py is licensed under Apache 2.0 and runs on Linux, macOS, and Windows, with self-hosting available. It is free.

Visit coverage.readthedocs.io

Coveralls

Coveralls analyzes software test coverage, showing teams which code is not covered by tests. Its dashboard presents project coverage percentages and their changes over time, while repository views drill down from a project to sub-projects, files, and individual lines. Build history tracks coverage across branches, including pull requests. Coveralls can add summarized coverage results to pull requests and send status updates that apply coverage criteria to merge decisions. Notifications can go to Slack or webhooks. It supports line and branch coverage, with report formats including LCOV, SimpleCov, Cobertura, JaCoCo, and Clover XML. Coveralls says it works with any CI service and lists more than 30 community-created integrations, a GitHub Action, and a CircleCI Orb. An API can add repositories programmatically and return recent build statistics. Open-source and public repositories are free. The Starter plan is $10 a month for one private repository and includes a 30-day trial. A self-hosted enterprise installation can operate within existing security controls without outbound network access.

Visit coveralls.io