Skip to content

Commit

Permalink
Merge branch 'main' into examples-load
Browse files Browse the repository at this point in the history
  • Loading branch information
skudasov committed Nov 6, 2024
2 parents 9eae7de + d585ea8 commit a9927b6
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions tools/flakeguard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Flakeguard

**Flakeguard** is a tool designed to help identify flaky tests within a Go project. Flaky tests are tests that intermittently fail without changes to the code, often due to race conditions or other non-deterministic behavior. Flakeguard assists by analyzing the impact of code changes on test packages and by running tests multiple times to determine stability.

## Features

- **Identify Impacted Tests**: Detects test packages that may be affected by changes in your Go project files.
- **Run Tests for Flakiness**: Runs tests multiple times to determine their flakiness.
- **Output Results in JSON**: Allows easy integration with CI pipelines and custom reporting.
- **Supports Exclusion Lists**: Configurable to exclude specified packages or paths from the analysis.
- **Recursive Dependency Analysis**: Detects all impacted packages through dependency levels.

## Installation

To install `flakeguard` CLI, you need to have Go installed on your machine. With Go installed, run the following command:

```sh
go install github.com/smartcontractkit/chainlink-testing-framework/tools/flakeguard@latest
```

## Usage

Flakeguard offers two main commands:
- `find` identifies test packages affected by recent changes.
- `run` executes tests multiple times to identify flaky tests

Run with `--help` to see all flags for the commands.

### JSON Output

Both `find` and `run` commands support JSON output `--json`, making it easy to integrate Flakeguard with CI/CD pipelines and reporting tools.

0 comments on commit a9927b6

Please sign in to comment.