From d6d11ff9f56d3d3d8b77a76b48cf6c335d5187a3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bernd=20Ble=C3=9Fmann?= Date: Mon, 16 Sep 2013 11:03:10 +0200 Subject: [PATCH] Kleine Schreibfehler in der Doku verbessert. --- doc/dokumentation.xml | 8 ++++---- doc/html/ch04s05.html | 6 +++--- doc/kivitendo-Dokumentation.pdf | Bin 657838 -> 657842 bytes 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index 572290177..27c22fdce 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -5919,11 +5919,11 @@ filenames Alle Tests liegen im Unterverzeichnis t/. - Ein Script (bzw. ein Test) in f/ enthält einen oder mehrere Testfälle. + Ein Script (bzw. ein Test) in t/ enthält einen oder mehrere Testfälle. Alle Dateinamen von Tests enden auf .t. Es sind selbstständig ausführbare Perl-Scripte. - Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in f/, deren + Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in t/, deren Dateiname auf .t endet. @@ -6005,7 +6005,7 @@ filenames Ideen für neue Test-Scripte, die keine konkreten Funktionen testen - Ideen, die abgesehen von Funktions noch nicht umgesetzt wurden: + Ideen, die abgesehen von Funktionen noch nicht umgesetzt wurden: Überprüfung auf fehlende symbolische Links @@ -6030,7 +6030,7 @@ filenames Namen sind englisch, komplett klein geschrieben und einzelne Wörter mit Unterstrichten getrennt (beispielsweise bad_function_params.t). - Unterverzeichnisse sollten grob nach dem Themenbereich benannt sind, mit dem sich die Scripte darin befassen + Unterverzeichnisse sollten grob nach dem Themenbereich benannt sein, mit dem sich die Scripte darin befassen (beispielsweise background_jobs für Tests rund um Hintergrund-Jobs). Test-Scripte sollten einen überschaubaren Bereich von Funktionalität testen, der logisch zusammenhängend ist diff --git a/doc/html/ch04s05.html b/doc/html/ch04s05.html index 063198e91..17f81cb52 100644 --- a/doc/html/ch04s05.html +++ b/doc/html/ch04s05.html @@ -1,6 +1,6 @@ - 4.5. Die kivitendo-Test-Suite

4.5. Die kivitendo-Test-Suite

4.5.1. Einführung

kivitendo enthält eine Suite für automatisierte Tests. Sie basiert auf dem Standard-Perl-Modul Test::More.

Die grundlegenden Fakten sind:

  • Alle Tests liegen im Unterverzeichnis t/.

  • Ein Script (bzw. ein Test) in f/ enthält einen oder mehrere Testfälle.

  • Alle Dateinamen von Tests enden auf .t. Es sind selbstständig ausführbare Perl-Scripte.

  • Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in f/, deren + 4.5. Die kivitendo-Test-Suite

    4.5. Die kivitendo-Test-Suite

    4.5.1. Einführung

    kivitendo enthält eine Suite für automatisierte Tests. Sie basiert auf dem Standard-Perl-Modul Test::More.

    Die grundlegenden Fakten sind:

    • Alle Tests liegen im Unterverzeichnis t/.

    • Ein Script (bzw. ein Test) in t/ enthält einen oder mehrere Testfälle.

    • Alle Dateinamen von Tests enden auf .t. Es sind selbstständig ausführbare Perl-Scripte.

    • Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in t/, deren Dateiname auf .t endet.

    4.5.2. Voraussetzungen

    Für die Ausführung werden neben den für kivitendo eh schon benötigten Module noch weitere Perl-Module benötigt. Diese sind:

    • Test::Deep (Debian-Paketname: libtest-deep-perl; Fedora Core: perl-Test-Deep; openSUSE: perl-Test-Deep)

    • @@ -35,10 +35,10 @@

    Es wird sehr gern gesehen, wenn neue Funktionalität auch gleich mit einem Test-Script abgesichert wird. Auch bestehende Funktion darf und soll ausdrücklich nachträglich mit Test-Scripten abgesichert werden.

    4.5.5.1. Ideen für neue Test-Scripte, die keine konkreten Funktionen testen -

    Ideen, die abgesehen von Funktions noch nicht umgesetzt wurden:

    • Überprüfung auf fehlende symbolische Links

    • Suche nach Nicht-ASCII-Zeichen in Perl-Code-Dateien (mit gewissen Einschränkungen wie das Erlauben von deutschen Umlauten)

    • Test auf DOS-Zeilenenden (\r\n anstelle von nur \n)

    • Überprüfung auf Leerzeichen am Ende von Zeilen

    • Test, ob alle zu übersetzenden Strings in locale/de/all vorhanden sind

    • Test, ob alle Webseiten-Templates in templates/webpages mit vom Perl-Modul Template compiliert werden können

    4.5.5.2. +

    Ideen, die abgesehen von Funktionen noch nicht umgesetzt wurden:

    • Überprüfung auf fehlende symbolische Links

    • Suche nach Nicht-ASCII-Zeichen in Perl-Code-Dateien (mit gewissen Einschränkungen wie das Erlauben von deutschen Umlauten)

    • Test auf DOS-Zeilenenden (\r\n anstelle von nur \n)

    • Überprüfung auf Leerzeichen am Ende von Zeilen

    • Test, ob alle zu übersetzenden Strings in locale/de/all vorhanden sind

    • Test, ob alle Webseiten-Templates in templates/webpages mit vom Perl-Modul Template compiliert werden können

    4.5.5.2. Konvention für Verzeichnis- und Dateinamen

    Es gibt momentan eine wenige Richtlinien, wie Test-Scripte zu benennen sind. Bitte die folgenden Punkte als Richtlinie betrachten und ihnen soweit es geht folgen:

    • Die Dateiendung muss .t lauten.

    • Namen sind englisch, komplett klein geschrieben und einzelne Wörter mit Unterstrichten getrennt (beispielsweise - bad_function_params.t).

    • Unterverzeichnisse sollten grob nach dem Themenbereich benannt sind, mit dem sich die Scripte darin befassen + bad_function_params.t).

    • Unterverzeichnisse sollten grob nach dem Themenbereich benannt sein, mit dem sich die Scripte darin befassen (beispielsweise background_jobs für Tests rund um Hintergrund-Jobs).

    • Test-Scripte sollten einen überschaubaren Bereich von Funktionalität testen, der logisch zusammenhängend ist (z.B. nur Tests für eine einzelne Funktion in einem Modul). Lieber mehrere Test-Scripte schreiben.

    4.5.5.3. Minimales Skelett für eigene Scripte diff --git a/doc/kivitendo-Dokumentation.pdf b/doc/kivitendo-Dokumentation.pdf index 198a7f4e3a3dc29e2a32b639550fc75846498850..853b75ea04a05f7a619893b2deaf7f1d50b24509 100644 GIT binary patch delta 33236 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

    M0#PoSr-7Ydy~R*r=;M0@fc^l4 zFU6rJW zswzf7F!lI+@MViX>yDaD_$bm?f10x?2BZb?6GN65wQ^u5@P*l+R?x#iU(0wc3T6{L zEo?$?DA4=@ysN`qXHM%FdSZZKk`6G8oe-Rn(WWF=1dm(*hFvFsVYlQzy0>9I?0X3u z*hnNa`ELq~17xt0rU?jYJ98d@Lpq&JGob71)AblkeV7DXYbMhGyw}AfZF$ZAi{d1x etu5&1zt-1(yYB{9L8#d=s4T&G^9;?61pfz)SKo>N -- 2.20.1