Rust Test Coverage Findings¶
Stand: 2026-09-24
Snapshot¶
- Rust test suite: 125 Tests, alle gruen
- Coverage command:
cd src-tauri && cargo llvm-cov --summary-only - Region coverage: 48.76%
- Function coverage: 39.92%
- Line coverage: 45.82%
Was in dieser Runde dazu kam¶
Neue Unit-Tests wurden fuer diese Module hinzugefuegt:
src-tauri/src/commands/github.rssrc-tauri/src/commands/graphics.rssrc-tauri/src/commands/mangohud.rssrc-tauri/src/lib.rssrc-tauri/src/commands/winetricks.rssrc-tauri/src/commands/shell_link.rssrc-tauri/src/commands/icons.rssrc-tauri/src/commands/performance.rssrc-tauri/src/commands/steamgriddb.rssrc-tauri/src/commands/games.rssrc-tauri/src/tray.rssrc-tauri/src/locale.rssrc-tauri/src/http.rssrc-tauri/src/commands/umu.rssrc-tauri/src/commands/wine_tools.rssrc-tauri/src/commands/steamgriddb.rs
Die neuen Tests decken vor allem reine Parser-, String- und Konfigurations-Helfer ab. Das ist der guenstigste Weg, schnell mehr Sicherheit zu gewinnen, ohne Tauri- oder Desktop-Integration mocken zu muessen.
Starke Bereiche¶
Diese Module sind bereits vergleichsweise gut abgedeckt:
| Modul | Regions | Functions | Lines |
|---|---|---|---|
models.rs |
91.38% | 91.67% | 93.66% |
commands/binary_vdf.rs |
88.08% | 82.61% | 84.44% |
commands/logs.rs |
71.76% | 46.15% | 74.32% |
commands/proton_options.rs |
65.71% | 52.94% | 66.12% |
commands/umu.rs |
62.30% | 53.33% | 59.59% |
commands/shell_link.rs |
65.93% | 63.16% | 58.90% |
commands/umu_database.rs |
63.35% | 59.46% | 58.41% |
commands/performance.rs |
60.25% | 59.09% | 65.32% |
Mittlere Bereiche¶
Diese Module sind brauchbar gestartet, aber noch nicht tief genug abgesichert:
| Modul | Regions | Functions | Lines |
|---|---|---|---|
config.rs |
58.78% | 30.00% | 55.87% |
commands/mangohud.rs |
56.91% | 25.00% | 61.65% |
commands/icons.rs |
51.95% | 50.00% | 50.51% |
commands/graphics.rs |
50.83% | 25.00% | 48.28% |
commands/games.rs |
49.70% | 44.50% | 44.88% |
commands/runner_downloads.rs |
41.15% | 38.03% | 34.54% |
commands/steam.rs |
39.15% | 22.08% | 31.94% |
commands/github.rs |
39.29% | 40.00% | 32.50% |
commands/winetricks.rs |
38.50% | 24.44% | 43.10% |
commands/steamgriddb.rs |
35.97% | 28.07% | 36.76% |
tray.rs |
36.32% | 38.46% | 36.26% |
Schwache oder ungetestete Bereiche¶
Diese Module haben aktuell kaum oder gar keine Abdeckung:
| Modul | Regions | Functions | Lines |
|---|---|---|---|
commands/wine_tools.rs |
24.24% | 41.67% | 29.51% |
commands/locale.rs |
0.00% | 0.00% | 0.00% |
error.rs |
2.59% | 50.00% | 3.61% |
main.rs |
0.00% | 0.00% | 0.00% |
Fast vollstaendig oder vollstaendig abgedeckt in dieser Runde:
| Modul | Regions | Functions | Lines |
|---|---|---|---|
http.rs |
100.00% | 100.00% | 100.00% |
locale.rs |
90.48% | 100.00% | 92.19% |
commands/games.rs ist weiterhin ein wichtiger Sonderfall: trotz des Sprungs auf 49.70% Regions und 44.88% Lines bleibt das Modul sehr gross und fachlich zentral. Weitere gezielte Tests oder kleine Extraktionen lohnen sich dort weiterhin ueberproportional.
commands/umu.rs ist mit den neuen Helfer-Tests jetzt in einem deutlich besseren Bereich. Die billigen Gewinne dort sind weitgehend mitgenommen; weitere Spruenge wuerden eher ueber Download-/Installationspfade mit mehr Dateisystem- oder Netzwerkaufwand kommen.
commands/wine_tools.rs ist nicht mehr ungetestet. Der billige Teil dort war fast komplett auf die Tool-Auswahl konzentriert; weitere Abdeckung wuerde schnell in Prefix-Preparation und Prozess-Spawn-Pfade laufen und ist deshalb weniger attraktiv als weitere Arbeit in games.rs oder steamgriddb.rs.
commands/steamgriddb.rs ist mit den neuen Lookup-, Data-URL- und Cache-Tests deutlich vorangekommen. Die naechsten Spruenge dort wuerden eher ueber die Set/Get/Remove-Pfade oder API-Envelopes kommen, also ueber etwas schwerere State- und I/O-Wege.
tray.rs hat mit den zuletzt extrahierten Label-, Dialog-, ID-, GDBus- und Sortier-Helfern einen brauchbaren Sockel erreicht. Der naechste sinnvolle Schritt dort waere nur noch weitere kleine pure Entscheidungslogik; fuer groessere Spruenge sind andere Module aktuell ergiebiger.
Priorisierte naechste Schritte¶
src-tauri/src/commands/games.rsGrund: grosses Kernmodul, inzwischen fast bei 50% Regions, aber weiterhin mit vielen unberuehrten Pfaden; hohes Risiko bei Regressionen und weiter der beste Hebel fuer die Gesamtquote.src-tauri/src/tray.rsGrund: deutlich besser als zuvor, aber weiterhin UI-/Tauri-lastig. Weitere Gewinne sind moeglich, aber nicht mehr ganz so billig wie ingames.rsoderumu.rs.src-tauri/src/commands/runners.rsGrund: relativ klein, aber funktional noch schwach abgedeckt; koennte mit ein paar gezielten reinen Helper-Tests einen ordentlichen Quotensprung liefern.src-tauri/src/commands/locale.rsGrund: 0%, klein, aber nur begrenzter Nutzen; kann man nebenbei mitnehmen.src-tauri/src/commands/steamgriddb.rsGrund: nicht mehr im roten Bereich, aber weitere Zugewinne sind jetzt teurer und eher in stateful Pfaden versteckt.src-tauri/src/commands/wine_tools.rsGrund: nicht mehr bei 0%, aber weitere Zugewinne waeren deutlich teurer als bei den verbleibenden reinen Logikmodulen.
Praktische Interpretation¶
- Die Kernlogik fuer Modelle und einige Parser ist solide abgesichert.
- Die Gesamt-Coverage ist jetzt messbar, aber fuer ein Backend noch eher mittel.
- Die groessten Risiken liegen weniger bei den kleinen Datenmodellen als bei grossen System- und Integrationsmodulen.
- Der schnellste weitere Gewinn kommt ueber kleine Refactorings, die I/O von Entscheidungslogik trennen.
Reproduktion¶
Coverage neu berechnen:
Normale Tests ausfuehren: