LLM Skills
~/catalogue/tests et qualité//test-and-fix
Tests et qualitésource GitHub

Boucle test → diagnostic → correction

/test-and-fix

Cette commande suit une boucle **test → diagnostic → correction → retest** jusqu'à ce que tous les tests soient réussis ou qu'une intervention manuell

solanabrsolanabr
101
17 janvier 2026
MIT License
// contenu du skill

description: "Run tests and automatically fix common issues"


You are running tests and fixing any issues found. This command iteratively tests, diagnoses problems, fixes them, and retests.

Related Skills

Overview

This command follows a test → diagnose → fix → retest loop until all tests pass or manual intervention is needed.

Step 1: Initial Test Run

bash
echo "🧪 Running initial tests..."

# Determine project type and run appropriate tests
if [ -f "Anchor.toml" ]; then
    # Anchor project
    anchor build && anchor test --skip-deploy
    TEST_STATUS=$?
elif grep -q "solana-program" Cargo.toml 2>/dev/null; then
    # Native Solana program
    cargo build-sbf && cargo test
    TEST_STATUS=$?
else
    # Standard Rust or backend
    cargo test
    TEST_STATUS=$?
fi

if [ $TEST_STATUS -eq 0 ]; then
    echo "✅ All tests passed!"
    exit 0
fi

echo "❌ Tests failed. Starting diagnosis..."

Step 2: Diagnose Issues

Analyze the test output to categorize failures:

Common Issue Categories

  1. Format Issues
  • Code not formatted
  • Inconsistent style
  1. Clippy Warnings
  • Lints not satisfied
  • Potential bugs
  1. Compilation Errors
  • Syntax errors
  • Type mismatches
  • Missing imports
  1. Test Failures
  • Failed assertions
  • Logic errors
  • Account validation failures (Solana)
  1. Runtime Errors
  • Panics
  • Arithmetic overflow
  • Account errors (Solana)

Step 3: Automatic Fixes

Fix Format Issues

bash
# Always start with formatting
echo "📝 Fixing format issues..."
cargo fmt

# For TypeScript tests
if [ -d "tests" ] && ls tests/*.ts >/dev/null 2>&1; then
    npx prettier --write "tests/**/*.ts"
fi

echo "✅ Format fixed"

Fix Clippy Warnings (Auto-fixable)

bash
echo "🔧 Fixing clippy warnings..."

# Apply automatic clippy fixes
cargo clippy --fix --allow-dirty --allow-staged

# Note: Not all clippy warnings are auto-fixable
# Manual fixes may be needed for:
# - Logic issues
# - Unsafe code
# - Complex refactorings

echo "✅ Clippy auto-fixes applied"

Fix Common Solana Issues

#### Missing Account in Anchor Test

bash
# If test fails with "Missing account: system_program"
# Add to test accounts:
# systemProgram: anchor.web3.SystemProgram.programId,

#### Account Not Mutable

bash
# If error: "Account not mutable"
# Update account definition to include 'mut':
# #[account(mut)]

#### Insufficient Compute Units

bash
# If error: "Exceeded CU limit"
# Add compute budget instruction in test:
# .preInstructions([
#   ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 })
# ])

Step 4: Rerun Tests

bash
echo "🔄 Retesting after fixes..."

# Run tests again
if [ -f "Anchor.toml" ]; then
    anchor test --skip-deploy
    TEST_STATUS=$?
elif grep -q "solana-program" Cargo.toml 2>/dev/null; then
    cargo test
    TEST_STATUS=$?
else
    cargo test
    TEST_STATUS=$?
fi

if [ $TEST_STATUS -eq 0 ]; then
    echo "✅ All tests now pass!"
    exit 0
fi

Step 5: Manual Fix Guidance

If automatic fixes didn't resolve all issues, provide guidance:

bash
echo "⚠️  Manual fixes needed. Analyzing failures..."

# Parse test output for specific errors
# This is where AI assistance helps diagnose complex issues

Solana-Specific Manual Fixes

#### Account Validation Failures

rust
// Error: "A has_one constraint was violated"
// Fix: Ensure account relationships match constraints

#[account(
    mut,
    has_one = authority @ ErrorCode::Unauthorized,  // authority must match
)]
pub vault: Account<'info, Vault>,

#### PDA Derivation Mismatch

rust
// Error: "Invalid PDA seed"
// Fix: Verify seeds match between program and test

// Program:
seeds = [b"vault", authority.key().as_ref()]

// Test:
const [vaultPda] = PublicKey.findProgramAddressSync(
  [Buffer.from("vault"), authority.publicKey.toBuffer()],
  programId
);

#### Arithmetic Overflow

rust
// Error: "Arithmetic overflow"
// Fix: Use checked arithmetic

// Bad:
vault.balance = vault.balance + amount;

// Good:
vault.balance = vault
    .balance
    .checked_add(amount)
    .ok_or(ErrorCode::Overflow)?;

#### Missing Signer

rust
// Error: "Missing required signature"
// Fix: Ensure account is marked as Signer

#[account(mut)]
pub authority: Signer<'info>,  // Must be Signer, not SystemAccount

Backend Service Manual Fixes

#### Async/Await Issues

rust
// Error: "Cannot call blocking function in async context"
// Fix: Use async version or spawn_blocking

// Bad:
async fn handler() -> Result<String> {
    std::fs::read_to_string("file.txt")?  // Blocking!
}

// Good:
async fn handler() -> Result<String> {
    tokio::fs::read_to_string("file.txt").await?
}

#### Database Connection Issues

rust
// Error: "Connection pool exhausted"
// Fix: Increase pool size or
// source originale publique
solanabr/solana-claude-config
/.claude/commands/test-and-fix.md
Licence : MIT License
Projet indépendant, non affilié à Anthropic. Ce skill reste la propriété de son auteur original.
// installer ce skill
Collez cette commande dans votre terminal à la racine de votre projet :
mkdir -p .claude/commands && curl -o ".claude/commands/test-and-fix.md" "https://raw.githubusercontent.com/solanabr/solana-claude-config/main/.claude/commands/test-and-fix.md"
Ensuite dans Claude Code, tapez /test-and-fix pour l'activer.
open_in_newVoir la source originale
// sauvegarder
Sauvegarde disponible après connexion.
loginSe connecter pour sauvegarder
// informations
Créateursolanabr
Étoiles 101
LicenceMIT License
Mis à jour17 janvier 2026
Format.md
AccèsGratuit
// similaires

Skills Tests et qualité

Voir toutarrow_forward