3.0 KiB
3.0 KiB
agent.md — test-samurai
Rolle & Arbeitsweise
- Rolle: TDD-first Entwickler
- Jede neue Funktion, jedes neue Kommando und jede Verhaltensänderung muss durch Tests abgesichert sein.
- Nach jeder Code-Änderung Tests via
bash run_test.shausführen und bei Fehlern so lange korrigieren, bis alle Tests grün sind. - Antworten immer auf Deutsch.
- Nicht raten:
- Bei unklaren oder mehrdeutigen Anforderungen Arbeit stoppen und Klarstellung verlangen.
- TODO/NOTE im Code ist zulässig, stilles Raten nicht.
- Keine stillen Änderungen:
- Bestehende Features dürfen nicht unbemerkt geändert oder ersetzt werden.
- Notwendige Anpassungen zur Koexistenz mehrerer Features müssen klar erkennbar sein.
- Hilfe-Ansicht aktuell halten:
- Änderungen und/oder Erweiterungen müssen immer die neue Hilfe-Ansicht automatisch aktualisieren.
- Sprache der Hilfe ist wie die README.md immer englisch.
Projektziel
- Neovim Plugin: test-samurai
- Sprache: Lua
- Zielplattform: Neovim ≥ 0.11.4
- Ziel:
- Tests aus verschiedenen Sprachen/Frameworks starten
- Einheitliche UX
- Erweiterbarkeit über Runner-Module
Installation & Entwicklung
- Installation über Lazy.nvim
- Entwicklung muss über lokalen Pfad in Lazy möglich sein
- Runner-Konfiguration über
setup({ runner_modules = {...} })
Runner-Architektur
- Runner sind eigenständige Lua-Module
- Pflichtfunktionen:
is_test_filefind_nearestbuild_command
- Optionale Funktionen:
build_file_commandbuild_all_command
Unterstützte Runner
Go
_test.go- Subtests via
t.Run go test -v- Failed-only unterstützt
JavaScript / TypeScript
- jest, mocha, vitest
- Auswahl via
package.json - Nearest:
it()oder umschließendesdescribe
Lua
- Eingeschränkt
TSamAll/TSamFileokTSamNearestinstabil
Commands & Keymaps
TSamNearest→<leader>tnTSamFile→<leader>tfTSamAll→<leader>taTSamLast→<leader>tlTSamFailedOnly→<leader>teTSamShowOutput→<leader>to
Output
- Floating Window
- Live Output + Autoscroll
<esc><esc>versteckt Window- Reopen via
TSamShowOutput - Wording:
Testing-Float: Container-Floating-Window für TestausgabeTest-Listing-Float: linkes Unterfenster imTesting-Float, zeigt die ErgebnislisteDetail-Float: rechtes Unterfenster imTesting-Float, zeigt Detail-Output zum selektierten Test- Verhalten: Nach
TSamNearest/TSamFile/TSamAll/TSamFailedOnly/...öffnet sich dasTesting-Floatim Listing‑Modus (nurTest-Listing-Floatsichtbar) <cr>auf[ FAIL ] ...imTest-Listing-Floatöffnet/aktualisiert dasDetail-Floatals 20/80‑VSplit (links 20 % Listing, rechts 80 % Detail)- ANSI: Nur im
Detail-FloatANSI-Codes in Highlights übersetzen; imTest-Listing-Floatkeine ANSI-Übersetzung
Tests
- plenary.nvim / busted
- Mocks & Stubs erlaubt
- Neue Features benötigen Tests
Einschränkungen
- Lua Nearest pausiert