""" Go Test Discovery Functions for discovering Go tests in a codebase. """ from pathlib import Path from typing import List from ...models import TestCase, TestFramework, TestCategory from ..config import PROJECT_ROOT def discover_go_tests(base_path: Path) -> List[TestCase]: """Entdeckt Go-Tests in einem Verzeichnis""" tests = [] if not base_path.exists(): return tests # Suche nach *_test.go Dateien test_files = list(base_path.rglob("*_test.go")) for test_file in test_files: # Parse Test-Funktionen aus der Datei try: content = test_file.read_text() for i, line in enumerate(content.split("\n"), 1): if line.strip().startswith("func Test"): # Extrahiere Funktionsname name_start = line.find("Test") name_end = line.find("(", name_start) if name_end > name_start: func_name = line[name_start:name_end] tests.append(TestCase( id=f"{test_file.stem}_{func_name}", name=func_name, file_path=str(test_file.relative_to(PROJECT_ROOT)), line_number=i, framework=TestFramework.GO_TEST, category=TestCategory.UNIT, )) except Exception: pass return tests