mix muex (Muex v0.3.3)

View Source

Run mutation testing on your project.

Usage

mix muex [options]

Options

  • --files - Directory, file, or glob pattern (default: "lib")
  • --path - Synonym for --files
  • --language - Language adapter to use (default: "elixir")
  • --mutators - Comma-separated list of mutators (default: all)
  • --concurrency - Number of parallel mutations (default: number of schedulers)
  • --timeout - Test timeout in milliseconds (default: 5000)
  • --fail-at - Minimum mutation score to pass (default: 100)
  • --format - Output format: terminal, json, html (default: terminal)
  • --min-score - Minimum complexity score for files to include (default: 20)
  • --max-mutations - Maximum number of mutations to test (0 = unlimited, default: 0)
  • --no-filter - Disable intelligent file filtering
  • --verbose - Show detailed progress information (file analysis, optimization, etc.)
  • --optimize - Enable mutation optimization heuristics (default: enabled)
  • --no-optimize - Disable mutation optimization heuristics
  • --optimize-level - Optimization preset: conservative, balanced, aggressive (default: balanced)
  • --min-complexity - Minimum complexity for mutations (default: 2, with --optimize)
  • --max-per-function - Max mutations per function (default: 20, with --optimize)

Examples

# Run on all lib files (with intelligent filtering)
mix muex

# Run on all files without filtering
mix muex --no-filter

# Run on specific directory
mix muex --files "lib/muex"

# Run on specific file
mix muex --files "lib/my_module.ex"

# Run with glob patterns
mix muex --files "lib/muex/*.ex"
mix muex --files "lib/**/compiler*.ex"

# Use specific mutators
mix muex --mutators arithmetic,comparison,boolean,literal,function_call,conditional

# Set minimum complexity score
mix muex --min-score 30

# Limit total mutations to test
mix muex --max-mutations 500

# Show detailed progress information
mix muex --verbose

# Fail if mutation score below 80%
mix muex --fail-at 80

# Output JSON to terminal
mix muex --format json

# Output JSON with progress details
mix muex --format json --verbose

# Generate HTML report (writes to muex-report.html)
mix muex --format html

# Enable mutation optimization (balanced preset)
mix muex --optimize

# Use aggressive optimization
mix muex --optimize --optimize-level aggressive

# Custom optimization settings
mix muex --optimize --min-complexity 3 --max-per-function 15