pi-test-runner
v0.1.3
Published
Pi extension package for project-aware test running.
Maintainers
Readme
Pi Test Runner
Estensione Pi per lanciare i test del progetto direttamente dal comando /test,
in modo consapevole del repository: rileva il tipo di progetto e sceglie il
comando di test più adatto.
Funzionalità
- Comando
/test— lancia i test del progetto dalla directory corrente - Autocomplete contestuale —
/te+ Tab completa in/testsenza spazio extra; dentro/test, Tab propone le flag disponibili senza ripetere quelle già usate; fuori dal comando, l'autocomplete resta quello di Pi - Rilevamento automatico del progetto — individua il tipo di progetto (attualmente Go) e pianifica il comando di test corretto
- Notifica di sintesi — al termine mostra un riepilogo del risultato (esito, comando eseguito)
- Risultati analizzabili dal modello — con
--commenti risultati vengono inviati al modello per l'analisi
Installazione
Da npm (consigliata):
pi install npm:pi-test-runnerDa locale (sviluppo):
pi install . # dalla root di questo repoPoi in una sessione Pi già aperta:
/reloadUso
/test # esegue i test del progetto (es. go test -race ./...)
/test --tags contract,e2e # esegue con i build tags Go
/test --info # mostra l'output completo del comando
/test --comment # invia i risultati al modello per l'analisiAutocomplete:
/te+ Tab →/test(cursore subito dopo il comando, senza spazio)/test+ Tab → suggerisce--info,--tags,--comment- le flag già usate non vengono riproposte
Come funziona
- Rileva il tipo di progetto nella directory corrente (attualmente: Go)
- Pianifica il comando di test (
go test -race ./..., con-tags=...se richiesto) - Esegue il comando e riporta un riepilogo del risultato
- Con
--infomostra l'output completo; con--commentinvia al modello comando eseguito, esito e output troncato (max 12.000 caratteri)
Sviluppo
npm run typecheck # type check TypeScript
npm run test:unit # test unitari (vitest)
npm run test:watch # test in watch modeStruttura:
pi-test-runner/
├── extensions/ # entry point dell'estensione
├── src/
│ ├── application/ # logica di dominio (pianificazione, parsing, analisi)
│ ├── adapters/ # integrazione con l'API di Pi (comando, autocomplete)
│ └── infrastructure/ # esecuzione comandi e API di sistema
└── package.jsonRelease
Le release partono da GitHub: crea una release (tag vX.Y.Z) e il workflow
pubblica automaticamente il pacchetto su npm con Trusted Publishing (OIDC).
Stato
Attualmente supporta i progetti Go; l'architettura è predisposta per estendere il rilevamento ad altri linguaggi.
