Introducing covpeek - Cross-language Coverage Report CLI Parser

Have you ever struggled to parse coverage reports across different programming languages? Are you tired of writing custom scripts to generate coverage badges or extract coverage data? There’s a better way: covpeek.

covpeek is a cross-language coverage report CLI parser written in Go that makes working with coverage data a breeze. With covpeek, you can parse coverage reports from Rust, Go, TypeScript, JavaScript, and Python with one unified tool. It’s one tool to rule them all!

The Problem

When I started working on a Rust project, I ran into a frustrating problem: I needed to understand the test coverage, but parsing LCOV files manually was tedious. Then I needed to generate coverage badges for the README, compare coverage between commits, and upload reports to SonarQube. Each task required writing custom scripts or using different tools.

I thought: there has to be a better way. Why should we reinvent the wheel for every project and every language? That’s when the idea for covpeek was born.

The Solution

covpeek is a single binary that solves all these problems:

Why Open Source?

Unlike Autoupdate, I decided to release covpeek as free and open-source software under the AGPL-3.0 license. Why?

  1. Community-driven development: Coverage parsing benefits from diverse use cases and contributions
  2. Transparency: Testing tools should be transparent and trustworthy
  3. Give back: I’ve benefited immensely from open-source tools, and I want to contribute back

Supported Formats

covpeek currently supports:

Each format is automatically detected by file extension or content, making covpeek incredibly easy to use.

How to Use

Getting started is simple:

# Install with Go
go install github.com/Chapati-Systems/covpeek/cmd/covpeek@latest

# Or download pre-built binaries from GitHub Releases

Parse a coverage file:

covpeek --file coverage.lcov

Generate a badge:

covpeek badge --file coverage.lcov --output coverage-badge.svg

Launch the interactive TUI:

covpeek --file coverage.lcov --tui

Upload to SonarQube or Codecov:

covpeek upload --to sonarqube --project-key myproject --token $SONAR_TOKEN
covpeek upload --to codecov --repo-token $CODECOV_TOKEN

The Future

This is just the beginning. I have plans to add support for more languages and formats, additional platform integrations, and more features based on community feedback.

Get Involved

covpeek is completely free and open source! Check out the GitHub repository to:

Questions?

Please share feedback like feature requests or bug reports on GitHub Issues. Contributions are welcome!

In conclusion, if you’re working with coverage reports across multiple languages, covpeek is the tool you’ve been looking for. With automatic format detection, multiple output formats, and powerful features like badge generation and platform integration, covpeek makes working with coverage data easy and efficient. So why wait? Try covpeek today and simplify your coverage workflow!