Automatisch Testlauf starten und auswerten

Zur Vertiefung wollen wir nun nach der auto­ma­tischen 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 Ent­schei­dungs­ta­belle zu Ent­schei­dungs­ta­belle unterschiedlich sein kann, wird die De­fi­ni­tion des Schlüssels nicht in der Datei Pro­ject.ini, sondern am Anfang des C#- Prologs der Ent­schei­dungs­ta­belle als Kommentar eingetragen:

Durch die erste Kommentarzeile wird für diese Ent­schei­dungs­ta­belle ein neuer Schlüssel Testsuite mit dem Wert CompareTest.exe festgelegt, bei den Schlüssel­namen spielt die Groß-/Kleinschreibung keine Rolle.

Schlüssel, die im Source­code der Ent­schei­dungs­ta­belle definiert werden, können wie Standard-Schlüssel verwendet werden. In der Datei Pro­ject.ini wird der neue Schlüssel Testsuite als viertes Argument bei dem Aufruf der Datei procedure.bat übergegeben:

D:\Projekte\LF‑ET-Demo\Cs\Pro­ject.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 zu­sätz­lichen 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 erfolg­reich 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 aus­ge­wer­tet, das Ergebnis direkt als Excel-Datei gespei­chert und die Datei geöffnet, siehe auch: Die Kommandozeilenfunktion -AnaLog

Bevor wir in LF‑ET die Gene­rie­rung starten, muss noch sichergestellt werden, dass die zu­sätz­lich verwendeten Funktionen/Programme auch ausführbar sind, d.h. beispiels­weise über die Umgebungsvariable "path" gefunden werden können.

Dazu wird die zentrale Konfi­gura­tionsdatei 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 Ver­zeich­nis des C#-Compilers (csc.exe) zur Umgebungs­variablen "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#-Gene­rie­rung gestartet wurde, können die Details der Verarbeitung im Protokoll-Bildschirm verfolgt werden…​

image4105 66

…​und am Ende wird auto­ma­tisch die ge­rade erzeugte Statistik mit MS Excel angezeigt:

image4105 67

Wichtig: Der hier definierte Mechanismus gilt auto­ma­tisch für alle Ent­schei­dungs­ta­bellen im Wirkungsbereich der Konfi­gura­tionsdatei Pro­ject.ini. Wirkungsbereich: siehe Die Suche nach INI-Dateien.

Auf diese Weise lassen sich beliebig komplexe Folgeprozesse für die Gene­rie­rung von Source­code mit LF‑ET realisieren.

Weiterführende Informationen: