Automatisch Testlauf starten und auswerten
Zur Vertiefung wollen wir nun nach der automatischen Compilierung auch gleich noch die Testsuite starten, die Log-Datei statistisch auswerten und die Ergebnis-Statistik mit Excel anzeigen.
Zunächst definieren wir einen neuen Parameter (Schlüsselwert) für die Testsuite, den wir später der Prozedur übergeben werden. Da der Inhalt oder die Existenz des Schlüssels von Entscheidungstabelle zu Entscheidungstabelle unterschiedlich sein kann, wird die Definition des Schlüssels nicht in der Datei Project.ini, sondern am Anfang des C#- Prologs der Entscheidungstabelle als Kommentar eingetragen:
Durch die erste Kommentarzeile wird für diese Entscheidungstabelle ein neuer Schlüssel Testsuite mit dem Wert CompareTest.exe festgelegt, bei den Schlüsselnamen spielt die Groß-/Kleinschreibung keine Rolle.
Schlüssel, die im Sourcecode der Entscheidungstabelle definiert werden, können wie Standard-Schlüssel verwendet werden. In der Datei Project.ini wird der neue Schlüssel Testsuite als viertes Argument bei dem Aufruf der Datei procedure.bat übergegeben:
D:\Projekte\LF‑ET-Demo\Cs\Project.ini
ide.cs=true
ide.cs.procedure.file=procedure.bat
ide.cs.procedure.args=${project.drive} "${src.folder}" ${src.name} ${codetype} ${testsuite}
Die Skript-Datei procedure.bat wird um den neuen Parameter und die zusätzlichen Verarbeitungsschritte erweitert.
D:\Projekte\LF‑ET-Demo\Cs\procedure.bat
@echo off
set projectDrive=%1
set srcFolder=%2
set srcName=%3
set codetype=%4
set testsuite=%5
if not %codetype%==Application goto exitok
%projectDrive%
cd %srcFolder%
call ..\ConfigCs.bat
echo.
echo * Compile %srcName%.cs *
csc.exe /out:%srcName%Test.exe %srcName%.cs
if errorlevel 1 goto err
if "%testsuite%"=="${testsuite}" goto exitok
echo * %testsuite% ausführen *
%testsuite% > %testsuite%.log
if errorlevel 1 type %testsuite%.log & goto err
type %testsuite%.log
echo.
echo * %testsuite%.log auswerten *
call lfetconsole.bat -incsv %testsuite%.log -outxls %testsuite%.log.xls -ofo
if errorlevel 1 goto err
:exitok
echo * Folgeverarbeitung erfolgreich beendet *
exit
:err
echo * Fehler in der Folgeverarbeitung * >&2
| Die neuen Skript-Einträge | Bedeutung/Wirkung |
|---|---|
set testsuite=%5 |
Der neue Parameter wird in die Variable "testsuite" übernommen |
if "%testsuite%"=="${testsuite}" goto exitok |
Ist eine Variable nicht definiert, dann übergibt LF‑ET das Argument aus der procedure.bat unverändert, d.h. in unserem Falle wäre das "${testsuite}". In so einem Falle springen wir an das reguläre Ende der Verarbeitung |
echo * %testsuite% ausführen * %testsuite% > %testsuite%.log if errorlevel 1 type %testsuite%.log & goto err type %testsuite%.log |
Die Testsuite wird ausgeführt, im Fehlerfalle (errorlevel >=1) wird die Protokolldatei ausgegeben und Verarbeitung abgebrochen. Ansonsten wird auch die Protokolldatei ausgegeben |
echo. echo * %testsuite%.log auswerten * call lfetconsole.bat -incsv %testsuite%.log -outxls %testsuite%.log.xls –ofo if errorlevel 1 goto err |
Die Log-Datei wird statistisch ausgewertet, das Ergebnis direkt als Excel-Datei gespeichert und die Datei geöffnet, siehe auch: Die Kommandozeilenfunktion -AnaLog |
Bevor wir in LF‑ET die Generierung starten, muss noch sichergestellt werden, dass die zusätzlich verwendeten Funktionen/Programme auch ausführbar sind, d.h. beispielsweise über die Umgebungsvariable "path" gefunden werden können.
Dazu wird die zentrale Konfigurationsdatei ConfigCs.bat (siehe Cs/C#-Test ausführen) noch etwas erweitert, die Datei lfetconsole.bat muss ausführbar sein:
D:\Projekte\LF‑ET-Demo\ConfigCs.bat
rem Verzeichnis des C#-Compilers (csc.exe) zur Umgebungsvariablen "path" hinzufügen set path=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\;%path% rem LF‑ET (lfetconsole.bat, Statistik erzeugen und Anzeigen) set path=D:\Tools\LF‑ET;%path% |
Nach dem in LF‑ET die Cs/C#-Generierung gestartet wurde, können die Details der Verarbeitung im Protokoll-Bildschirm verfolgt werden…

…und am Ende wird automatisch die gerade erzeugte Statistik mit MS Excel angezeigt:

Wichtig: Der hier definierte Mechanismus gilt automatisch für alle Entscheidungstabellen im Wirkungsbereich der Konfigurationsdatei Project.ini. Wirkungsbereich: siehe Die Suche nach INI-Dateien.
Auf diese Weise lassen sich beliebig komplexe Folgeprozesse für die Generierung von Sourcecode mit LF‑ET realisieren.
Weiterführende Informationen: