Skip to content

Odstráň duplicitné testy a zbytočné čakanie v CI - #922

Merged
jsuchal merged 1 commit into
mainfrom
fix/avoid-redundant-test-waits
Oct 16, 2026
Merged

jsuchal merged 1 commit into
mainfrom
fix/avoid-redundant-test-waits

Conversation

@jsuchal

@jsuchal jsuchal commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

The problem

CI zbytočne opakuje integračné testy a dva browser testy vždy čakajú na vypršanie päťsekundového timeoutu, hoci je očakávaný stav už splnený. Predlžuje to spätnú väzbu bez dodatočného pokrytia.

Solution

  • Odstránený samostatný krok rails test:integration: predchádzajúci rails test už tieto testy zahŕňa. Profilovaním bolo overené, že všetkých 137 integračných testov sa objavilo v oboch behoch. Browser testy naďalej bežia samostatne cez rails test:system; zachované zostáva aj nahrávanie logov a screenshotov pri zlyhaní.
  • Vo FS a UPVS testoch tvorby správ nahradené assert_not has_link? za assert_no_link. Pôvodný pozitívny predicate pri chýbajúcom odkaze čakal celý timeout. Negatívna assertion priamo overuje neprítomnosť a stále zachováva Capybara synchronizáciu, ak treba počkať na zmiznutie odkazu. Globálny timeout sa nemení.

Produkčný kód, autentifikácia ani rozsah pokrytia sa nemenia. Profiler a meracie skripty nie sú súčasťou PR.

Meranie

Kontrolovaný lokálny experiment s rovnakými dvoma testami, rovnakým profilerom a seedom 59674, spustený postupne na jednom stroji:

Pôvodné assertions Negatívne assertions
Čas samotných testov 12,20 s 2,46 s
Výsledok 2 testy, 11 assertions, bez chýb 2 testy, 11 assertions, bez chýb

Úspora je približne 10 sekúnd na tejto dvojici. Odstránený integračný krok v referenčnom CI behu trval ďalších 19 sekúnd vrátane štartu aplikácie. Nie je to tvrdenie násobného zrýchlenia celej sady; nový celkový čas musí potvrdiť CI.

Overenie: bundle exec rails test --seed 59674 a bundle exec rails test:system --seed 59674.

Celé lokálne overenie finálnej vetvy prešlo:

  • rails test: 606 testov, 1 661 assertions, 0 zlyhaní, 0 chýb, 3 skips, čas testov 22,75 s.
  • rails test:system: 87 testov, 603 assertions, 0 zlyhaní, 0 chýb, čas testov 71,22 s.
  • Spolu 693 testov, integračné testy zahrnuté v prvom behu. Časy sú lokálne, nie výsledok CI; profilované a neprofilované behy celej sady nie sú presným A/B porovnaním.

Demo

Not applicable — optimalizácia testov a CI bez zmeny používateľského rozhrania. Výsledky merania sú uvedené vyššie.

@jsuchal
jsuchal requested a review from a team as a code owner October 16, 2026 14:17
@jsuchal jsuchal self-assigned this Oct 16, 2026
@jsuchal
jsuchal merged commit 47b364b into main Oct 16, 2026
3 checks passed
@jsuchal
jsuchal deleted the fix/avoid-redundant-test-waits branch October 16, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants