/ Каталог / Песочница / pypict Test Case Generator
● Сообщество omkamal ⚡ Сразу

pypict Test Case Generator

автор 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.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

pypict-claude-skill.replay ▶ готово
0/0

Установка

Выберите клиент

~/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
    }
  }
}

Откройте Claude Desktop → Settings → Developer → Edit Config. Перезапустите после сохранения.

~/.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 использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

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
    }
  }
}

Щёлкните значок MCP Servers на боковой панели Cline, затем "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
    }
  }
}

Тот же формат, что и Claude Desktop. Перезапустите Windsurf для применения.

~/.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 использует массив объектов серверов, а не 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"
        ]
      }
    }
  }
}

Добавьте в context_servers. Zed перезагружается автоматически.

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

Однострочная команда. Проверить: claude mcp list. Удалить: claude mcp remove.

Сценарии использования

Реальные сценарии: pypict Test Case Generator

Cover a feature with combinatorial inputs without writing 64 tests

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

Когда использовать: Feature has 4+ enum-ish parameters and exhaustive testing would explode.

Предварительные требования
  • Server/skill installed and authenticated — See repo README
Поток
  1. Model
    Use pypict skill: model checkout with payment_method=[card, paypal, applepay], shipping=[standard, express, intl], discount=[none, code, member], currency=[USD, EUR].✓ Скопировано
    → Pict model + ~12 pairwise cases
  2. Generate tests
    Emit pytest tests from those cases against checkout().✓ Скопировано
    → pytest file with parametrize

Итог: Real combinatorial coverage with ~12 cases instead of 81.

Подводные камни
  • 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.

Стоимость и лимиты

Во что обходится

Квота API
See provider docs for rate limits
Токенов на вызов
Varies by tool
Деньги
See repo README for pricing details
Совет
Cache tool results and avoid repeated identical calls.

Безопасность

Права, секреты, радиус поражения

Хранение учётных данных: Use environment variables; never commit secrets
Исходящий трафик: Tool calls go to the provider's API as documented

Устранение неполадок

Частые ошибки и исправления

pict binary not found

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

Проверить: pypict.exec_pict('test')
constraints rejected

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

Проверить: Run validator first

Альтернативы

pypict Test Case Generator в сравнении

АльтернативаКогда использоватьКомпромисс
Plain parametrizeFew parametersNo combinatorial benefit

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills