A parallel code quality checker for Elixir projects. AlCheck runs multiple code quality checks (format, compile, credo, dialyzer, and tests) concurrently with smart test partitioning.

Features

  • Parallel Execution: Runs all checks concurrently to maximize CPU utilization
  • Test Partitioning: Splits test suite across multiple partitions for parallel execution
  • Smart Test Management: Re-run only failed tests, monitor test progress in real-time
  • Auto-fix Support: Apply credo fixes automatically from stored outputs
  • Real-time Progress: Visual feedback with test counts and status updates
  • Flexible Filtering: Run specific checks or use fast mode for quick feedback

Installation

Add al_check to your list of dependencies in mix.exs:

def deps do
  [
    {:al_check, "~> 0.1.0"}
  ]
end

Then install globally:

mix deps.get
mix check.install
# if u use asdf
asdf reshim

Usage

CLI Usage

Run all checks:

check

Common Options

# Run only fast checks (format, compile, credo)
check --fast

# Run specific checks only
check --only format,test
check --only credo

# Run tests with custom partition count
check --partitions 4

# Run tests from specific directory
check --dir test/my_app/feature/

# Re-run only failed tests from previous run
check --failed

# Apply auto-fixes from stored credo output
check --fix

# Monitor test partition files in real-time
check --watch

Available Checks

  • format - mix format --check-formatted
  • compile - mix compile --warnings-as-errors
  • compile_test - MIX_ENV=test mix compile --warnings-as-errors
  • dialyzer - mix dialyzer
  • credo - mix credo --all
  • credo_strict - mix credo --strict --only readability --all
  • test - mix test (with parallel partitioning)

Workflows

Failed Test Workflow

When tests fail, failed test locations are automatically saved:

check --only test     # Run tests and save failures
cat check/failed_tests.txt    # View failed tests
check --failed        # Re-run only the failed tests

Auto-fix Workflow

Credo output is stored for later use with --fix:

check --only credo    # Run checks and store output
check --fix           # Apply fixes from stored output

Test Partitioning

Tests run in parallel partitions (default: 3). Each partition uses its own database. Customize based on your CPU cores:

check --partitions 3  # Run with 3 partitions

Output Files

AlCheck creates a check/ directory with the following files:

  • check/credo.txt - Credo output for auto-fix
  • check/credo_strict.txt - Strict credo output for auto-fix
  • check/check_tests.txt - Merged test output from all partitions
  • check/test_partition_N.txt - Individual partition outputs
  • check/failed_tests.txt - List of failed test locations

Requirements

  • Elixir ~> 1.18
  • Mix build tool

Documentation

Full documentation is available at https://hexdocs.pm/al_check.

License

This project is licensed under the MIT License - see the LICENSE file for details.