-
Notifications
You must be signed in to change notification settings - Fork 0
pl Pytest Integration
Najważniejszą funkcjonalnością logic-cov jest tryb porównawczy (-comp), który łączy statyczną analizę kodu z dynamicznymi wynikami pochodzącymi bezpośrednio z wykonania pakietu testów.
Aby zestawić wykonane testy z mapą rzeczywistej logiki biznesowej, należy przekazać katalog testów, kod źródłowy oraz flagę -comp:
logic-cov tests/ scripts/ -comp-
Narzędzie uruchamia w tle proces pytest z automatyczną konfiguracją pokrycia (--cov oraz --cov-report=term-missing).
-
Przechwytuje surowe numery linii, które pytest-cov uznał za "niewykonane" (unexecuted lines).
-
Dokonuje operacji iloczynu zbiorów (intersection): odrzuca nieprzetestowane linie kodu odpowiedzialne wyłącznie za GUI (np. konfiguracje layoutu, marginesy komponentów okienkowych), pozostawiając wyłącznie nieprzetestowane linie czystej logiki.
krzysztof@lenovo:~/bing-glava-suite$ logic-cov tests/ scripts/ -comp
========================================================================================
======================== logic-cov: Logic Coverage Gap Analysis ========================
Name Logic Stmts Covered Missing Logic Cover%
----------------------------------------------------------------------------------------
scripts/glava-gui.py 476 357 119 75%
↳ Missing Logic: 892-1010
scripts/gui/__init__.py 0 0 0 100%
scripts/gui/color_button.py 122 122 0 100%
scripts/gui/colors.py 160 160 0 100%
scripts/gui/core.py 117 117 0 100%
scripts/gui/geometry.py 157 153 4 97%
↳ Missing Logic: 116-119
scripts/gui/glava.py 359 313 46 87%
↳ Missing Logic: 35-38, 60-63, 138-141, 223-226, 304-306, 354-356, 364-367, 387-389, 418-420, 431-444
scripts/gui/instance.py 108 108 0 100%
scripts/gui/instance_tab_bar.py 81 69 12 85%
↳ Missing Logic: 275-278, 367-370, 407-410
scripts/gui/modules/__init__.py 0 0 0 100%
scripts/gui/modules/bars.py 73 64 9 88%
↳ Missing Logic: 256-264
scripts/gui/modules/base.py 163 105 58 64%
↳ Missing Logic: 189-197, 226-243, 257-287
scripts/gui/modules/circle.py 67 54 13 81%
↳ Missing Logic: 97-100, 184-186, 328-333
scripts/gui/modules/glsl_io.py 233 233 0 100%
scripts/gui/modules/graph.py 40 40 0 100%
scripts/gui/modules/radial.py 62 58 4 94%
↳ Missing Logic: 117-120
scripts/gui/modules/wave.py 75 45 30 60%
↳ Missing Logic: 86-91, 211-220, 333-346
scripts/gui/tab_advanced.py 133 133 0 100%
scripts/gui/tab_main.py 362 362 0 100%
scripts/gui/tab_module.py 94 94 0 100%
scripts/gui/theme.py 6 3 3 50%
↳ Missing Logic: 188-190
scripts/gui/themes/__init__.py 0 0 0 100%
scripts/gui/widgets.py 70 55 15 79%
↳ Missing Logic: 27-41
----------------------------------------------------------------------------------------
TOTAL LOGIC 2958 2645 313 89%
========================================================================================
=============================== target analysis finished ===============================
Podczas parsowania kodu przez drzewo AST, logic-cov stosuje inteligentną zasadę przesunięć i doliczania marginesów. Jeśli nieprzetestowana linia znajduje się wewnątrz złożonej struktury sterującej, analizator automatycznie przechwytuje również nagłówek rodzica (if, for, try).
Dzięki temu wygenerowane raporty linii zachowują pełen kontekst logiczny i strukturalny — są one gotowe do bezpośredniego wklejenia w prompt dla modeli LLM w celu błyskawicznego wygenerowania brakujących scenariuszy testowych.