diff --git a/.vscode/ltex.dictionary.de-DE.txt b/.vscode/ltex.dictionary.de-DE.txt index fc487f3b957d6beaa18f0f7e4df94ab4b25fddc8..c739e8e30c33edac55f61a92d31381cbe230b74c 100644 --- a/.vscode/ltex.dictionary.de-DE.txt +++ b/.vscode/ltex.dictionary.de-DE.txt @@ -14,3 +14,4 @@ Binarisierungsschritte Kernelgröße Gemorphtes pytesseract +Funktions-Dekorator diff --git a/Praxisbericht.pdf b/Praxisbericht.pdf index 9f369fd3ca4885eede7eb08906cfc6b96f165642..2e01b35790efefc0695dbc285009588cebd77656 100644 Binary files a/Praxisbericht.pdf and b/Praxisbericht.pdf differ diff --git a/Praxisbericht.tex b/Praxisbericht.tex index cd77a9d1c2c430eb753e62756a0ad65b6d426608..139993bd50968f7b39ee4482726b3e133df556db 100644 --- a/Praxisbericht.tex +++ b/Praxisbericht.tex @@ -282,6 +282,30 @@ \section{Automatisiertes Testen} \label{sec: testing} + Im Unterordner \lstinline{./tests} befindet sich Testcode für das Python-Modul \lstinline{pytest}. Dieser macht es sehr einfach, eine + Reihe an Testfällen zu definieren. + + Dazu ist in der Datei \lstinline{tests/test_imagerecon.py} die Funktion \lstinline{test_knownimages()} implementiert. Für diese ist zuerst + eine Liste gültiger Codes global definiert. Dann werden über den Funktions-Dekorator \lstinline{@pytest.mark.parametrize} einzelne + Testfälle dekoriert. Dieser definiert eine Liste mit Bilddateien und dem darauf befindlichen Codes und testet dann, ob die + \lstinline{main()} mit diesen Parametern das erwartete Ergebnis liefert. Die Funktion kann also leicht an aktuelle Bilder angepasst + werden. Hier der entsprechende code: + + \begin{lstlisting}[gobble=16] + valid_codes = ["SIE20220101", "FAT3264128"] + @pytest.mark.parametrize( + ("path", "contained_codes"), + [ + ("tests/img/image1.png", ["FAT3264128"]), + ("tests/img/image2.png", ["SIE20220101"]), + ], + ) + def test_knownimages(path, contained_codes): + assert contained_codes == main(path, valid_codes) + \end{lstlisting} + + Um die Tests durchzuführen, kann direkt der Befehl \lstinline{pytest} oder das Makefilerezept \emph{test} verwendet werden. + \section{Debugging Optionen} \label{sec: debugging} \section{Packaging} \label{sub: packaging}