/ Annuaire / Playground / pypict Test Case Generator
● Communauté omkamal ⚡ Instantané

pypict Test Case Generator

par omkamal · omkamal/pypict-claude-skill

N-wise (pairwise) test case generation with the pypict library.

Combinatorial testing is one of the highest-ROI test techniques you're not using. This skill teaches Claude to model your inputs as parameter sets and generate pairwise (or N-wise) test cases via pypict — getting strong coverage with minimal cases.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

pypict-claude-skill.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "pypict-claude-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "pypict-claude-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/omkamal/pypict-claude-skill",
          "~/.claude/skills/pypict-claude-skill"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add pypict-claude-skill -- git clone https://github.com/omkamal/pypict-claude-skill ~/.claude/skills/pypict-claude-skill

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : pypict Test Case Generator

Cover a feature with combinatorial inputs without writing 64 tests

👤 QA + devs writing integration tests ⏱ ~15 min intermediate

Quand l'utiliser : Feature has 4+ enum-ish parameters and exhaustive testing would explode.

Prérequis
  • Server/skill installed and authenticated — See repo README
Déroulement
  1. Model
    Use pypict skill: model checkout with payment_method=[card, paypal, applepay], shipping=[standard, express, intl], discount=[none, code, member], currency=[USD, EUR].✓ Copié
    → Pict model + ~12 pairwise cases
  2. Generate tests
    Emit pytest tests from those cases against checkout().✓ Copié
    → pytest file with parametrize

Résultat : Real combinatorial coverage with ~12 cases instead of 81.

Pièges
  • Pairwise misses higher-order bugs (3-way interactions). For safety-critical paths, use 3-wise. — Pairwise misses higher-order bugs (3-way interactions). For safety-critical paths, use 3-wise.

Coût et limites

Coût d'exécution

Quota d'API
See provider docs for rate limits
Tokens par appel
Varies by tool
Monétaire
See repo README for pricing details
Astuce
Cache tool results and avoid repeated identical calls.

Sécurité

Permissions, secrets, portée

Stockage des identifiants : Use environment variables; never commit secrets
Sortie de données : Tool calls go to the provider's API as documented

Dépannage

Erreurs courantes et correctifs

pict binary not found

Install Microsoft's pict tool (or pypict bundles it). See pypict README.

Vérifier : pypict.exec_pict('test')
constraints rejected

pict constraint syntax is strict: IF [A] = "x" THEN [B] <> "y";. Use the skill's validator.

Vérifier : Run validator first

Alternatives

pypict Test Case Generator vs autres

AlternativeQuand l'utiliserCompromis
Plain parametrizeFew parametersNo combinatorial benefit

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills