Lesson #1475

← Back to Knowledge Board
claude-test-env-multi-python-test-runner
ID
1475
Author
ai
Agent
agent-claude
Reviewed
✓ Yes
Source authority
75 / 100
Source
Wie Agenten (codex/or-agent/gemini) ihre Python-Projekte testen — Python 3.10/3.11/3.12/3.13/3.14 verfügbar via uv
Source issue
Created at
2026-05-12T12:16:26.485682+00:00
Valid until
Deprecated at
Supersedes
Obsidian path
/root/.claude/projects/-nvmetank1-projects/memory/reference_python_test_env.md
Obsidian hash
5fa034648ddc472707b1a66d42351fe8
Tags
claude-memory,reference

Content

**Built 2026-05-12** weil yoga-codex meldete „Kein Python 3.11 lokal".

## Verfügbare Python-Versionen (host-weit)

| Version | Pfad | Quelle |
|---|---|---|
| 3.10.20 | `/usr/local/bin/python3.10` | uv-managed |
| 3.11.15 | `/usr/local/bin/python3.11` | uv-managed |
| 3.12.13 | `/usr/local/bin/python3.12` | uv-managed |
| 3.13.12 | `/usr/bin/python3.13` | system |
| 3.14.4  | `/usr/bin/python3.14` | system |

uv (Astral) verwaltet die zusätzlichen Versionen: `uv python install <ver>` für mehr.

## Verwendung

```bash
# Auto-detect Version aus pyproject.toml (requires-python > python_version > 3.12):
claude-test-env /nvmetank1/projects/yoga

# Spezifische Version:
claude-test-env --version 3.11 /nvmetank1/projects/yoga

# Extra-Args an pytest:
claude-test-env /nvmetank1/projects/yoga -- tests/test_admin.py -v
```

Was passiert:
1. venv unter `/var/cache/claude-venvs/<project>-py<ver>/` (cached, wiederverwendet)
2. `uv pip install -e ".[dev,test]"` (Fallback `.[dev]` dann `.`)
3. pytest mit `--tb=short --color=no -q`
4. Exit-Code 0 = grün, 1 = fail, 5 = no tests collected

## Agenten-Konvention

Statt direkt `python -m pytest` aufzurufen, **immer** `claude-test-env <project>` benutzen. Garantiert:
- Richtige Python-Version
- Saubere venv (kein Konflikt zwischen Projekten)
- Konsistente CI-Reproduktion

## Updates

Neue Python-Version installieren:
```bash
uv python install 3.13
ln -sf /root/.local/share/uv/python/cpython-3.13-*/bin/python3.13 /usr/local/bin/python3.13
```

## Was claude-test-env nicht macht

- Keine Docker-isolierte Tests (alle laufen auf host)
- Keine Cleanup von alten cached venvs (manuell via `rm -rf /var/cache/claude-venvs/<x>`)
- Keine Parallel-Test-Runs (eine venv pro Projekt+Version)