Una dintre cele mai puternice funcționalități ale OpenAI Codex CLI este bucla închisă de testare și reparare automată (Test-Driven Repair Loop). În loc să rulezi manual `pytest` sau `npm test`, să copiezi mesajul de eroare și să îl trimiți ca prompt separat, Codex preia controlul fluxului de verificare.
Agentul lansează suita de teste, capturează `stderr` și traceback-ul complet, izolează linia exactă care a picat aserțiunea, analizează dependențele și modifică fișierul sursă. După aplicarea patch-ului, re-rulează automat testul pentru a confirma rezolvarea fără efecte secundare (regresii).
Acest flux elimină 90% din munca repetitivă de debugging la refactorizări sau migrații de versiuni de limbaj.
Sintaxă, opțiuni și concepte cheie
| Opțiune / Concept | Descriere practică |
|---|---|
--test |
Specifică executabilul de testare (ex. ‘pytest tests/test_auth.py’ sau ‘jest’). |
--auto-fix |
Autorizează Codex să aplice modificările direct în fișiere dacă testele eșuează. |
--max-retries |
Numărul maxim de iterații de depanare automată permise înainte de a cere ghidaj uman (tipic 3). |
Traceback Analysis |
Parsarea automată a erorilor de tip AssertionError, TypeError sau NullPointer. |
Exemple practice de terminal și cod
Exemplul 1: Rularea și repararea automată a testelor unitare Python cu Codex
Comandă directă de testare și depanare automată.
$ codex exec --test "pytest tests/test_plati.py" --auto-fix
[Codex rulează pytest]
FAIL: test_calcul_tva_rotunjire (AssertionError: 119.001 != 119.00)
Codex identifică problema: rotunjirea zecimalelor în src/servicii/tva.py linia 42.
Codex aplică corecția: Decimal.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
[Codex re-rulează testul]
PASS: 14 tests passed in 0.82s.
Codex: 'Am corectat rotunjirea zecimală. Toate testele trec acum cu succes.'
Rezultat & Impact
Bug reparat și validat în 5 secunde fără intervenție manuală.
Greșeli frecvente și bune practici
- Permiterea unui număr infinit de reîncercări; dacă un test eșuează din cauza unei cerințe de business greșite, Codex poate începe să ‘repare’ testul în loc de cod.
- Rularea pe teste de integrare care modifică baze de date reale fără rollback tranzacțional.