epub2md/tools/qa/README.md
dschlueter 01f60a41c4 chore: QA-Skripte nach tools/qa übernommen
Die Werkzeuge der QA-Runden lagen nur im ignorierten .qa/: CLI-Matrix
(89 Fälle), Fixture-Generator, unabhängiger Markdown-Validator,
Wortvergleich gegen Datenverlust, Pandoc-Prüfung (HTML, EPUB, PDF).
Jetzt versioniert in tools/qa/ mit README und requirements.txt; erzeugte
Daten landen weiterhin in .qa/. Pfade auf die neue Lage angepasst
(Repo-Wurzel über parents[2], aufrufender Python-Interpreter).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:14:54 +02:00

2.2 KiB
Raw Permalink Blame History

QA-Werkzeuge

Skripte für die Qualitätsprüfung nach Prompt_Kontrolle.md. Sie ergänzen pytest um CLI-Integrationstests, einen unabhängigen Validator und die Prüfung des Pandoc-Wegs. Mit ihnen wurden die Befunde QA3-01 bis QA3-06 gefunden (siehe CHANGELOG.md). Alle Aufrufe im Repo-Wurzelverzeichnis; erzeugte Daten landen in .qa/ (von Git ignoriert), Kommandos mit Rückgabecode in .qa/commands.log.

python3 -m venv .qa/venv && . .qa/venv/bin/activate
pip install -r tools/qa/requirements.txt
Skript Zweck
make_fixtures.py erzeugt synthetische Test-EPUBs 01–14 (u. a. Path Traversal, kaputter Container, MathML, Fußnoten, Typografie) in .qa/generated-fixtures/
run_matrix.py CLI-Matrix (89 Fälle) über alle Optionen und Fehlercodes → .qa/output/matrix-results.json; braucht die Fixtures
validate_output.py AUSGABE… unabhängiger Validator (markdown-it-py statt epub2md/linkcheck.py): Links, Anker, Bilder, Fences, YAML, JSON, Python-Einrückung, Fußnotenpaare → JSON
worddiff.py ALT NEU Wortvergleich zweier Ausgaben – zeigt Datenverlust nach einer Codeänderung
pyblocks.py DATEIEN… Python-Codeblöcke mit Einrückungsfehlern samt Inhalt (Vergleich mit der Quelle)
pandoc_full.sh alle EPUBs aus Beispiele/ konvertieren, zusammenfügen und mit den Pandoc-Befehlen der Buch-README nach HTML, EPUB und PDF (weasyprint, xelatex) bringen → .qa/output/pandoc/
pandoc_run.sh, pandoc_pdfs.sh Teilschritte von pandoc_full.sh für einzelne Buchordner
check_pandoc.py BUCHORDNER… HTML/EPUB von Pandoc: interne Links und Anker, Bilder, [!TIP]-Reste, Formeln, Lage des Inhaltsverzeichnisses
check_pdf.sh PDF… Seiten, Seite des Inhaltsverzeichnisses, Text-Reste, nicht eingebettete Schriften (poppler-utils)
log.sh . tools/qa/log.sh; qa BEFEHL protokolliert Befehl und rc

Typischer Ablauf nach einer Änderung:

python -m pytest -q
python tools/qa/make_fixtures.py && python tools/qa/run_matrix.py
python epub2md.py Beispiele/BUCH.epub .qa/output/neu/BUCH
python tools/qa/worddiff.py .qa/output/alt/BUCH .qa/output/neu/BUCH     # alt: z. B. mit git stash erzeugt
python tools/qa/validate_output.py .qa/output/neu/BUCH