Testowanie i debugowanie z Codex
Testowanie i debugowanie z Codex działa wtedy, gdy o tym, co znaczy „gotowe”, decydują testy, a nie model: AGENTS.md podaje polecenia testowe, diagnoza biegnie w trybie tylko do odczytu, każda poprawka zaczyna się od testu, który pada z rozpoznanej przyczyny, a kontrola w CI, poza zasięgiem agenta, odrzuca poprawkę, która przy okazji zmienia testy.
Ta strona jest dla programistów, którzy zlecają Codex pisanie testów i poprawek, oraz dla tech leadów, którzy decydują, czego takie pull requesty muszą dowieść. Znasz ten scenariusz: wszystkie testy przechodzą, a błąd i tak trafia na produkcję, bo nowe testy sprawdzały mocki albo asercję po cichu poluzowano. Polecenia sprawdzono na Codex CLI 0.157.1.
Która strona o testach w Codex odpowiada na twoje pytanie?
Dział zatytułowany „Która strona o testach w Codex odpowiada na twoje pytanie?”| Twoje pytanie | Strona |
|---|---|
| Coś jest zepsute. Jak znaleźć przyczynę i udowodnić poprawkę? | Debugowanie i polowanie na błędy z Codex |
| Jak domknąć luki w pokryciu testami, które łapią prawdziwe błędy? | Generowanie i uruchamianie testów z Codex |
| Jak mocny musi być zestaw testów, żebym ufał testom, których nie czytałem? | Jak silna jest twoja wyrocznia? |
| Jak powstrzymać agenta przed edytowaniem kontroli, które go oceniają? | Ochrona wyroczni |
| Źle działa sam Codex: zawieszone zatwierdzenia, błędy piaskownicy | Jak wyjść z kłopotów z Codex |
Praktyki niezależne od narzędzia: testowanie we wszystkich narzędziach.
W jakiej kolejności skonfigurować testowanie z Codex?
Dział zatytułowany „W jakiej kolejności skonfigurować testowanie z Codex?”Każdy krok usuwa jeden sposób, w jaki zielony wynik może kłamać.
-
Wpisz polecenia testowe do
AGENTS.md. Podaj trzy polecenia testowe i jedną regułę, jak niżej. Od wersji 0.150.0 niezaufany projekt nie dostarcza swojegoAGENTS.md, więc najpierw oznacz repozytorium jako zaufane. Więcej w konfiguracji AGENTS.md dla Codex.## Testing- One file: `npx vitest run path/to/file.test.ts`- Tests related to a change: `npx vitest related --run <changed files>`- Full suite: `npm test`- Never edit a test to make it pass; if one looks wrong, stop and say why. -
Diagnozuj tylko do odczytu. Przy błędzie uruchom
codex -c default_permissions=":read-only", żeby nic się nie zmieniło, dopóki Codex nie wskaże jednej przyczyny jako pliku, linii i warunku. Profile uprawnień to mechanizm zalecany przez OpenAI (beta, Codex CLI od 0.138.0);--sandbox read-onlyto jego starszy odpowiednik. Użyj jednego albo drugiego, nigdy obu naraz: według OpenAI tych dwóch mechanizmów nie da się łączyć./plansprawia, że Codex odpowiada planem, ale tryb tylko do odczytu wymusza wyłącznie profil. -
Udowodnij, zanim naprawisz. Nowy test musi paść z rozpoznanej przyczyny, zanim powstanie poprawka; jeśli nie pada, diagnoza jest błędna. Poprawkę rób we własnym worktree (
codex --worktreealbo/worktreew sesji), żeby nieudana próba nic nie kosztowała. -
Automatycznie przekazuj agentowi wyniki testów. Hooki Codex (stabilne w 0.157.1) obejmują zdarzenia
PostToolUseiStop, więc hook może uruchomić powiązane testy po edycji albo szybki zestaw na koniec tury. Hooki wymagają zapisanego zaufania: zatwierdź je raz poleceniem/hooks, inaczej nie zostaną uruchomione (pomija to tylko flaga--dangerously-bypass-hook-trust, przeznaczona dla sprawdzonej automatyzacji). Rejestracja i hook blokujący koniec tury przy czerwonych testach: hooki agentów. -
Zablokuj testy poza sesją. „Nie edytuj testu” w prompcie to prośba, a nie kontrola. Blokadą jest kontrola w CI, która odrzuca gałąź z poprawką zmieniającą testy lub snapshoty bez zgody właściciela, plus ścieżki testów w
CODEOWNERS. Pełna konfiguracja: ochrona wyroczni.
Jak uruchomić ten prompt bez nadzoru przez codex exec z profilem tylko do odczytu, opisuje strona Codex bez interakcji.
Skąd wiesz, że testy i poprawki od Codex są dobre, bez czytania każdej linijki?
Dział zatytułowany „Skąd wiesz, że testy i poprawki od Codex są dobre, bez czytania każdej linijki?”Czytaj dowody; diff otwieraj tylko tam, gdzie wskazują.
| Dowód | Czego dowodzi | Kto odpowiada |
|---|---|---|
| Nazwy testów zatwierdzone przed generowaniem | Zestaw obejmuje zachowania, na których ci zależy | Programista |
| Nowy test był czerwony, z podanej przyczyny, przed poprawką | Test wykrywa błąd, który ma wykrywać | Programista |
| Pliki testów i snapshoty bez zmian w diffie poprawki | Nikt nie przeszedł testów, osłabiając je | Kontrola ścieżek testów w CI |
| Lista przeżywających mutantów, każdy rozpatrzony (test mutacyjny) | Zestaw łapie wstrzyknięte błędy, a nie tylko dzisiejszy kod | Recenzent |
| Pełny zestaw testów, typy i lint zielone w CI | Dotychczasowe zachowanie nadal działa | CI |
Co pull request dołącza, definiuje pakiet dowodów; dlaczego dowody wygrywają z diffem, wyjaśnia czytanie dowodów zamiast kodu, a w praktyce pokazuje naprawa sterowana testami.
Co idzie źle, gdy Codex testuje i debuguje własną pracę?
Dział zatytułowany „Co idzie źle, gdy Codex testuje i debuguje własną pracę?”| Objaw | Przyczyna | Jak wyjść |
|---|---|---|
| Testy zielone, błąd na produkcji | Testy sprawdzają mocki, a nie zachowanie | Dodaj test integracyjny na styku modułów; uruchom test mutacyjny z generowania testów |
| Poprawka przechodzi, bo zmieniła asercję albo snapshot | Nic poza sesją nie pilnowało plików testów | Cofnij zmianę w teście; dodaj kontrolę ścieżek testów w CI i wpisy w CODEOWNERS |
| Codex ignoruje twoje polecenia testowe | Projekt jest niezaufany, więc jego AGENTS.md nie został wczytany (od 0.150.0) | Oznacz repozytorium jako zaufane; zapytaj Codex, jakie instrukcje wczytał |
| Codex edytuje pliki w trakcie diagnozy | Sesja działała z piaskownicą z prawem zapisu | Uruchom ją ponownie z profilem :read-only; cofnij zmienione pliki przez git restore albo porzuć worktree |
| Diagnoza brzmi sensownie, ale nowy test pada inaczej | Nie rozdzielono dwóch prawdopodobnych przyczyn | Uznaj diagnozę za obaloną; poproś o dowód, który wyklucza każdą z przyczyn |
Dokąd dalej przy testowaniu i debugowaniu z Codex
Dział zatytułowany „Dokąd dalej przy testowaniu i debugowaniu z Codex”Testowany kod powstaje na etapie budowania z Codex, a to, czego dowiodły testy, trafia dalej przez code review i wdrożenie z Codex. Gotowe narzędzia: skille do testowania i debugowania. Ten sam etap w innych agentach: Claude Code i Cursor.