Skip to main content

Schema für Einzeltestbausteine

Testbaustein definieren

Um einen Testbaustein für einen einzelnen Testfall zu definieren, muss ein Funktionsbaustein geschrieben werden, der einem bestimmten Schema folgt und die Testlogik enthält. Das wichtigste Merkmal eines Testbausteins ist das Attribut {attribute 'test'}. Weitere Merkmale des Schemas sind in der Schnittstellenkonvention zu finden. Sie können das Schema sehr leicht einhalten, indem Sie den Assistenten zum Erstellen eines Testbausteins nutzen.

Unterstützung bei der Implementierung

Wenn Sie mit dem Assistenten einen Unittest hinzufügen, wird Ihnen eine Beispielimplementierung vorgeben. Der Assistent erstellt ein funktionierendes Beispiel, wenn Sie die Option Implementierungsvorlage hinzufügen aktivieren.

Grundlegende Testfallfunktion

Bausteine, die mit der Compilerdirektive {attribut 'test'} dekoriert sind, werden bei Testausführung automatisch ermittelt und mit dem Prüfling in eine Testapplikation übersetzt. Die Testapplikation wird ausgeführt. Dabei wird der Baustein (gemäß der Konvention eines ETrigA-Bausteins) solange aufgerufen, wie sein Ausgang xBusy den Wert TRUE hat und keiner der Ausgänge xDone, xAborted oder xError den Zustand TRUE hat. Über den Ausgang sInfo kann eine Beschreibung angegeben werden, warum dieser Testfall nicht fehlerfrei durchgelaufen ist.

Ein mit dem Assistenten erstellter Testbaustein kapselt dieses Verhalten in das Schema des Basis-Funktionsbausteins TM.Testcase (definiert in der Bibliothek IEC Unit Test): Für die Ausführung der Testlogik steht zum Beispiel die Methode Execute als Rahmen zur Verfügung, in der der Prüfling stimuliert werden soll. Für das Prüfen des Ergebnisses und das Melden von Fehlern stehen einfach zu verwendende Assert-Funktionen zur Verfügung.

Für weitere Informationen siehe: Einzeltestbaustein implementieren

Timeouts in Testbausteinen

Mit Timeouts definieren Sie maximale Zeitspannen für die Ausführung des Tests. Bei einer Überschreitung wird mit einem Fehler abgebrochen. Die verbleibenden Testfälle werden übersprungen. Die Timeouts definieren Sie im Assistenten im Dialog Unittest hinzufügen.

Testfallname

Mit der optionalen Angabe eines Testfallnamens können Sie dem im Testbaustein implementierten Testfall einen alternativen Namen (Standard: POU-Name des Testbausteins) geben. Diesen Namen können Sie im Testelement IEC-Unittest zur Auswahl/Ausnahme des Testfalls wie den POU-Namen verwenden. Im Testreport wird der Testfallname gegebenenfalls angezeigt.

Für weitere Informationen siehe: Pragmas in Testbausteinen

Testfallkategorie

Testfälle können in Kategorien organisiert werden, mit denen sie gesammelt im Testelelement IEC-Unittest ausgewählt/ausgenommen werden können. Ein Testfall kann mehreren Kategorien angehören.

Für weitere Informationen siehe: Pragmas in Testbausteinen

Schnittstellenkonvention

Die Schnittstellenkonvention wird von einem Testbaustein, der mit dem Assistenten erzeugt wurde und das Schema des TM.Testcase einhält, automatisch befolgt und vom Testelement IEC Unittest automatisch ausgewertet. Die Schnittstellenkonvention ist daher dann interessant, wenn ein Testbaustein manuell getriggert werden muss, beispielsweise zur Fehlersuche. Zusätzlich gelten die Pragmas in Testbausteinen.

Name

Datenyp

Gültigkeitsbereich

Optional

Beschreibung

xExecute

BOOL

VAR_INPUT

Startet und kontrolliert die Ausführung des Bausteins

xAbort

BOOL

VAR_OUTPUT

Bricht den Test gemäß CAA Behaviour Model ab

xBusy

BOOL

VAR_OUTPUT

TRUE: Der Testfall läuft gerade.

xDone

BOOL

VAR_OUTPUT

TRUE: Der Testfall wurde abgeschlossen.

xError

BOOL

VAR_OUTPUT

TRUE: Der Testfall wurde mit einem Fehler beendet.

xAborted

BOOL

VAR_OUTPUT

X

TRUE: Der Testfall wurde abgebrochen mit xAbort.

sInfo

STRING

(Unicode)

VAR_OUTPUT

X

Zusätzliche String-Information für den Testreport

eError

ENUM

VAR_OUTPUT

X

Wert aus der Fehlerbeschreibungsaufzählung (ENUM)

Voraussetzung: Der Testfall wurde mit Fehler beendet.