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 |
---|---|---|---|---|
|
|
| Startet und kontrolliert die Ausführung des Bausteins | |
|
|
| Bricht den Test gemäß CAA Behaviour Model ab | |
|
|
|
| |
|
|
|
| |
|
|
|
| |
|
|
| X |
|
|
(Unicode) |
| X | Zusätzliche String-Information für den Testreport |
|
|
| X | Wert aus der Fehlerbeschreibungsaufzählung ( Voraussetzung: Der Testfall wurde mit Fehler beendet. |