Element: IEC-Unittest
Symbol:
Funktion: Das Testelement IEC-Unittest bewirkt, dass bei Testausführung automatisch das (vorbereitend) geladene Testprojekt nach Testbausteinen und Testtabellen durchsucht und daraus eine Testapplikation erstellt wird. Dann wird diese Testapplikation geladen, gestartet und die Prüfungen werden durchgeführt. Abschließend werden die Resultate in einem Testreport abgelegt.
Voraussetzung ist somit, dass das Testprojekt Testbausteine oder Testtabellen enthält.
Titel | Titel des IEC-Unittests, der so im Testreport erscheint Der Titel darf Leerzeichen enthalten. Beispiel: |
Timeout Gerät lesen (ms) | Zeitdauer in ms, die bei der Kommunikation mit der Steuerung maximal gewartet wird Wenn die Zeit überschritten wird, wird eine Fehlerbehandlung gestartet und ein Fehler ausgegeben. Beispielsweise wird beim Monitoren von Variablen das Timeout überwacht. Beispiel: Hinweis: Während des Testlaufs wird immer wieder das Timeout überwacht: Üblicherweise beim Einloggen, wenn der Applikationsstatus ausgelesen wird. Dann bei jeder einzelnen Testfallausführung (mindestens einmal), wenn Status und Ergebnis ausgelesen werden. |
Erneute Login-Versuche | Anzahl der erneuten Einloggversuche Wenn die Anzahl überschritten wird, wird eine Fehlerbehandlung gestartet und ein Fehler ausgegeben. |
Liste von Bibliotheken, die Testbausteine enthalten Diese Bibliotheksbausteine werden beim Testlauf automatisch in der Testapplikation instanziiert, ausgeführt und ausgewertet. Doppelklicken Sie in der Tabelle in die oberste freie Zeile in die jeweilige Spalte, um ein Eingabefeld zu öffnen. | |
Name | Bibliothek, die im Testprojekt über mindestens einen Bibliotheksverwalter eingebunden ist Dabei müssen deren Referenzierungsart hier mit den Angaben im Bibliotheksverwalter übereinstimmen. Alternativ kann eine Variable für den Bibliotheksnamen angegeben werden.
|
Version |
|
Firma |
|
Beide Eingabefelder dienen dazu, die Auswahl der Bausteine, die im Testlauf berücksichtigt werden sollen, einzuschränken. Sie können explizit Ausgewählte Kategorien und/oder explizit Ausgeschlossene Kategorien von Bausteinen angeben. Wenn keine explizit ausgewählte Kategorie angegeben ist, werden implizit die Testbausteine aller Kategorien ausgewählt. Auf diese Auswahl folgend wird die Liste der ausgeschlossenen Kategorien angewendet. Ausgeschlossene Funktionsbausteine werden beim Testlauf nicht instanziiert, ausgeführt oder ausgewertet. Damit können Sie den Testfall auf Skriptebene anpassen, beispielsweise um ihn für Steuerungen mit unterschiedlicher Hardware zu verwenden. Voraussetzung: Die im Testprojekt enthaltenen Testbausteine oder Testtabellen haben Testkategorien deklariert. Ein Testbaustein wird über das Pragma Doppelklicken Sie links in die oberste freie Zeile, um ein Eingabefeld zu öffnen. Pro Zeile können Sie den Namen einer oder (kommasepariert) mehrerer Bausteinkategorien angeben. Beispiel: Eine dynamische Konfiguration der ein- oder auszuschließenden Bausteinkategorien ist mit Hilfe von Platzhaltern möglich. Der Platzhalter besteht aus dem Namen einer Testvariablen, eingeschlossen in geschweifte Klammern. Diese Testvariable erhält über eine Zuweisung im Testskript einen oder mehrere Kategorienamen und oder Bausteinamen. Beispiel: Der Testvariablen Beispiel für eine kombinierte Eingabe im Feld Ausgewählte Kategorien: |
Beide Eingabefelder dienen dazu, die Auswahl der Bausteine, die im Testlauf berücksichtigt werden sollen, einzuschränken. Entweder geben Sie explizit Ausgewählte Funktionen an, oder explizit Ausgeschlossene Funktionen. Diese Listen werden zusätzlich zu den oben beschriebenen Listen Ausgewählte Kategorien und Ausgeschlossene Kategorien ausgewertet. Sie können als Eingabe den Bausteinnamen oder den mit der Compilerdirektive Beispiel: Alle folgenden Eingabe führen dazu, dass die POU mit dem Name Ausgewählte Funktionen: TestCase_01 tc1 tc? TestCase_0* *_01 Deklaration: {attribute 'test'} {attribute 'testcasename':='tc1'} {attribute 'testcasetimeout' := '60000'} FUNCTION_BLOCK TestCase_01 EXTENDS TM.Testcase VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR super^(); Ausgeschlossene Funktionsbausteine werden beim Testlauf nicht instanziiert, ausgeführt oder ausgewertet. Damit können Sie die Ausführung des Testfalls auf Skriptebene steuern. Beispielsweise können Sie die Ausführung eines Testfalls für Steuerungen mit unterschiedlicher Hardware steuern. Zur Eingabe und Eingabesyntax sehen Sie bitte oben bei Ausgewählte Kategorien und Ausgeschlossene Kategorien. WichtigBei Multitests können im Eingabefeld Ausgeschlossene Funktionen Werte der Variablen Beispiel: Die Testfälle mit dem Variablenwert Ausgeschlossene Funktionen: TestStep #0: Intial value Implementierung: CASE diTestCaseIndex OF 0: // Test Case #0 - tests the same as CTD_InitialValue IF THIS^.xGetTestInfo THEN // Test case header THIS^.wsTestCaseName := "TestStep #0: Intial value"; THIS^.wsTestCaseCategories := "Multitest"; THIS^.diTestCaseTimeout := 200; xDone := TRUE; ELSE ... |
Modus einzelne Applikation |
Auf einigen Geräten, vor allem Embedded-Geräten, darf nur eine Applikation vorhanden sein. Sie sind nicht fähig, mehrere Applikationen abzuarbeiten. Entsprechend darf im Gerätebaum des Testprojekts auch nur eine Applikation pro Gerät vorhanden sein. Um ein übersetzbares Testprojekt zu generieren, wird für solche Geräte statt einer Backup-Applikation (Sicherungskopie der ursprünglichen Applikation unter dem Namen Hinweis: Aktivieren Sie die Option auch bei Geräten, deren Applikationsname nicht geändert werden kann. Dann werden nicht Applikationen umbenannt, sondern das im Projekt vorhandene Gerät. |