Skip to main content

A tool to help you find the changes in your code that are not covered by your tests

Project description

Cov Change

Cov change is a tool to help you find the changes in your code that are not covered by your tests. It uses git diff to find your changes, and coverage to find your test coverage.

Installation

pip install --upgrade pip
pip install cov-change

Usage

Assuming you've already run tests with coverage (e.g. coverage run -m pytest), you will have generated a .coverage file. To then use cov-change:

coverage json # generate a json file from the .coverage file
cov-change

By default, cov-change will compare your current branch to origin/main. The full usage is:

cov-change [diff_branch] [curr_branch] [--coverage-file COVERAGE_FILE]  [-o --output OUTPUT] [-v --verbose] [-f --format {cli,markdown}] [--diff_file DIFF_FILE] [--use-coverage-diff] [-h --help]

Options

  • diff_branch and curr_branch are the branches you want to compare. By default, diff_branch is origin/main and curr_branch is your current commit.
  • --coverage_file COVERAGE_FILE is the path to the coverage file. By default, it is coverage.json.
  • -o --output OUTPUT is the path to the output JSON file. By default, it is coverage_change.json.
  • -v --verbose will print out the missing lines for each file.
  • -f --format {cli,markdown} is the format of the output. By default, it is cli and outputs a formatted table. If markdown is passed in, it will output a markdown table.
  • --diff_file DIFF_FILE is the path to a pre-generated diff file. If this is not passed in, the git diff will be run within the cov-change command itself. It is recommended that you do not pass this argument in.
  • --use_coverage_diff assumes that cov-change has already been run once, and that the coverage change file has been generated. It will then use that diff file to generate the output.

Examples

cov-change # compare origin/main to current commit
cov-change origin/dev HEAD # compare origin/dev to the current commit
cov-change origin/dev HEAD --coverage_file my_coverage.json -v # compare origin/dev to the current commit, using my_coverage.json as the coverage file and printing out the missing lines

cov-change-check

cov-change-check checks if the generated coverage_change.json file meets requirements. If it doesn't, it will exit with a non-zero exit code. This is useful for CI/CD pipelines. The full usage is:

cov-change-check [coverage_change_file] [--total TOTAL] [--file FILE] [-h --help]

Options

  • coverage_change_file is the path to the coverage change file. By default, it is coverage_change.json.
  • --total TOTAL is the minimum total coverage change required. By default, it is 0.
  • --file FILE is the minimum coverage change required in each file. By default, it is 0.

Examples

cov-change-check --total 80 --file 50 # check if the total coverage is at least 80%, and if each file has at least 50% coverage

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cov_change-0.1.4.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

cov_change-0.1.4-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file cov_change-0.1.4.tar.gz.

File metadata

  • Download URL: cov_change-0.1.4.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.0 Linux/6.2.0-1015-azure

File hashes

Hashes for cov_change-0.1.4.tar.gz
Algorithm Hash digest
SHA256 0c57cb3acbbd0617c53c1cc6882793278dc65c9efb5d0746c4658cd3de0eed44
MD5 9dd5b5ac838d23b47d529edb4398ca17
BLAKE2b-256 332cbcc9ed41b888c775ec226c32275a300942c545b4efa92f913421079ad98f

See more details on using hashes here.

File details

Details for the file cov_change-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: cov_change-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.0 Linux/6.2.0-1015-azure

File hashes

Hashes for cov_change-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 29f29fb9f3f4a05e0744f4f5640906a0554ae7b3a17ef0b9108df18acbb80e47
MD5 36d6924fff0f351e051548b1ef915f33
BLAKE2b-256 ca5d3c3a9b1275be4656ee19174dc08e2aa1f454cf008462f42459ec1573cf41

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page