Code Coverage

Coverage you will actuallylook at

BuildPulse tracks code coverage per branch and per repo, with trends over time and file-level detail — next to the flake and build data for the same suite.

Add one input to the step you already have

If you already publish test results to BuildPulse, coverage is one more input on the same step. Nothing new to install, no second dashboard to log into.

1

Produce a report you already can

Jest, pytest-cov, simplecov, go tool cover, and most other tools emit LCOV or Cobertura XML with a flag you probably already pass in CI.

2

Add it to the upload

Pass the file to the same BuildPulse step that uploads your test results. Coverage and test data arrive together, tied to the commit.

3

Watch the trend, not one number

BuildPulse records coverage per branch and per file on every build, so you see the direction it is moving and which files are dragging it.

Point the reporter at your coverage file

# same step that uploads your test results
- uses: BuildPulseLLC/test-reporter-action@v3
  if: '!cancelled()'
  with:
    api-token: ${{ secrets.BUILDPULSE_API_TOKEN }}
    path: reports/junit.xml
    coverage-files: coverage/lcov.info

Coverage trends over time

Track line and branch coverage per branch across every build, so a slow slide shows up as a trend and not a surprise.

Per-branch breakdown

Compare any branch against your default branch to see where coverage diverged before you merge.

Native format support

LCOV and Cobertura XML — the two formats almost every coverage tool can already emit. Point us at the file you are producing today.

No third tool to wire

Same upload, same dashboard, same auth as the rest of BuildPulse. One platform for tests + coverage.

File-level inspection

Drill into per-file line and branch rates to find the modules your suite never touches.

Coverage next to test health

Coverage lives beside flake rate and pass rate for the same repo — one place to judge whether a suite is actually trustworthy.

One platform, every signal

Coverage, flake rate, and build time in one dashboard. Stop reconciling reports from three different tools.

Common questions

Which coverage formats are supported?

LCOV (.lcov or .info) and Cobertura XML. Between them these cover most of the ecosystem — Jest, nyc, and simplecov emit LCOV, while pytest-cov, coverage.py, and many JVM and .NET tools can emit Cobertura XML directly or through a converter.

Do I need a separate coverage tool or account?

No. Coverage rides on the same upload, the same API token, and the same dashboard as your test results. There is no second vendor to buy, wire up, or reconcile against.

Can I see coverage for a specific branch?

Yes. Coverage is recorded per branch, so you can look at your default branch, a release branch, or a feature branch and compare how they differ.

Can BuildPulse fail my build if coverage drops?

Not today. You can set a coverage target and BuildPulse will show you where you stand against it, but it does not block or fail the build. If a hard gate matters to you, tell us — it helps us prioritise.

Does coverage work if I only care about flaky tests?

It is entirely optional. If you never pass a coverage file, nothing changes and the rest of BuildPulse works exactly as before.

See where your tests are not looking

Upload one coverage report and BuildPulse starts a trend line for the branch, broken down to the file.

Free to start · No credit card required

Ready to ship faster? Start for free today.