HighTide

HighTide keeps your test coverage from slipping on every pull request. By simply refusing coverage decreases, your team steadily strengthens tests and overall code quality—without moonshot targets or big-bang efforts. It creates a gentle, continuous slope of improvement. This keeps your team focused on feature development while steadily improving code quality.

You write tests to prove your code works and to prevent regressions. HighTide helps keep those tests effective by enforcing that coverage never drops—and ideally nudges it upward over time. In effect: your tests check your code, and HighTide checks your tests.

At a glance

For example, here's a pull request where coverage decreased:

HighTide check failed on a pull request due to a coverage decrease
Example of a HighTide check which has failed

This tells the author to add or improve tests to cover new or changed behavior. Drilling into the details gives an overview of roughly how much the author needs to do, in order to improve or maintain coverage. Notably it is far easier to increase coverage than maintaining it, as it is easier to add more tests than what is needed to just maintain coverage (This is HighTide's secret, by not letting coverage drop, you improve it in small increments!). An example of the details view is shown below:

HighTide failure details showing coverage drop and thresholds
Example of the details of a HighTide check which has failed

Once the author has added to their tests, and pushed their latest changes, HighTide re-evaluates the coverage and provides updated feedback. In this case, since the coverage has been improved, the check is successful:

HighTide check passed with maintained or improved coverage
Example of a HighTide check which has succeeded

If the author's changes only maintained coverage, the HighTide check would still pass.

Development with HighTide

When HighTide is installed and configured in GitHub, it verifies that your pull requests do not reduce code coverage. Your typical workflow looks like:

  1. Write code and tests
  2. Push your changes and open a pull request
  3. CI builds and runs your test suite to ensure your code works
  4. HighTide checks that coverage hasn’t decreased compared to the base branch
  5. If it fails, add or improve tests until the check passes
  6. Merge with confidence

Getting Started

Head over to our Get Started with HighTide guide.