Einschränkungen beim Verwenden des Testframeworks

Dieser Artikel enthält die Einschränkungen, die Sie beim Verwenden des Testframeworks kennen und beachten sollten.

Beim Erstellen/Ausführen einer Testsuite

Die folgende Einschränkung gilt für das Erstellen und Ausführen von Testsuiten.

Die folgenden →POE sind als zu testende POE möglich:

  1. anwenderdefinierte POE, die im aktuellen Projekt abgelegt sind (z.B. in einem →Ordner des Projekts) und deren Name nicht mit dem Zeichen _ startet
  2. POE, die in →Bibliotheken abgelegt sind und deren Name nicht mit dem Zeichen _ startet
    Dabei kann es sich entweder um anwenderdefinierte POE oder um Systembausteine handeln.
  3. POE, die keinen der folgenden Bausteine in der zu testenden POE enthalten, da diese beim Ausführen eines Tests nicht unterstützt werden:

    Falls Sie dennoch einen dieser Bausteine in der zu testenden POE verwenden, ist nicht gewährleistet, dass der Test korrekt durchgeführt wird. (info) Im jeweiligen Baustein-Artikel finden Sie Informationen, warum der Baustein beim Ausführen eines Tests nicht unterstützt wird.

Es ist nicht möglich, eine Testsuite für POE mit →Referenzen zu erstellen oder auszuführen.

Falls eine Testsuite für ein →Programm mit internen →Variablen (VAR ... END_VAR) erstellt wird, werden diese Variablen ignoriert. Das bedeutet, dass keine entsprechende Spalten im Testfall vorhanden sind.

Falls eine Testsuite für ein →Programm mit →Eingangsvariablen und/oder →Ausgangsvariablen erstellt wird, werden diese Variablen ignoriert. Das bedeutet, dass keine entsprechende Spalten im Testfall vorhanden sind.

Falls eine Testsuite Sonderzeichen (wie Umlaute, z.B. ä, ö, ü) enthält, werden diese Sonderzeichen bei der Testausführung ignoriert. Verwenden Sie beim Erstellen/Bearbeiten der Testsuite daher am besten nur ASCII-Zeichen.

Bei wiederholter Testausführung werden die Dateien der Testausführung überschrieben.
Abhilfe 1: Falls Sie die Dateien einer Testausführung aufbewahren wollen, verschieben Sie die Dateien in einen anderen Ordner und/oder benennen Sie diese um, sodass Sie eindeutige Namen haben. Beispiel: Der Testbericht report.html wird zu report_180329_1.html.
Abhilfe 2: Falls Sie einen Gesamt-Testbericht für mehrere Testsuites wünschen, selektieren Sie diese Testsuites im gleichen Projekt und wählen Sie den entsprechenden Befehl für die Testausführung. Ergebnis: Die Tests werden für alle selektierten Testsuites durchgeführt. In Folge enthält der Testbericht report.html die Informationen zur Testausführung dieser Testsuites.

Es ist möglich, dass die Informationen zur Testabdeckung für bestimmte Szenarien im ST-Editor nicht korrekt erzeugt werden. Siehe "Einschränkungen zur Anzeige der Testabdeckung im ST-Editor".

Beim Bearbeiten einer Testsuite

Die folgenden Einschränkungen/Empfehlungen gelten für das Bearbeiten von Testsuiten.

Erstellen Sie nur bis zu 5.000 Testsequenzen pro Excel-Datei. Diese Beschränkung ist als Summe für alle Testfälle zu sehen.
Bei mehr Testsequenzen kann die optimale Verwendung des Testframeworks nicht gewährleistet werden, sondern die Testausführung könnte sich träge verhalten.

Tragen Sie nur bis zu 55.000 Daten pro Testfall ein. Beachten Sie, dass diese Daten so berechnet werden:

(Eingangsdaten des Testfalls + erwartete Ergebnisse des Testfalls) * Testsequenzen des Testfalls

Falls Sie mehr Daten in einem Testfall eintragen, erscheint diese Meldung beim Ausführen des Testfalls: Test case contains too many test sequences and/or inputs/outputs

Abhilfe, falls Testsequenzen im Testfall nicht angegebenen sind: Deaktivieren Sie die Einstellung Ergebnisse für nicht angegebene Testsequenzen validieren, bevor Sie den Test starten.

Gültige Werte für Eingangsdaten oder für erwartete Ergebnisse

Gültige Werte sind →Literale mit folgenden Ausnahmen: →Zeichenfolge-Literale werden nicht unterstützt. Beispiele: 'OK' oder 'B'
Somit können Variablen vom Datentyp STRING oder CHAR nicht mit dem Testframework geprüft werden.

Verhalten bei externen Variablen

Es ist nicht möglich, →externe Variablen in Funktionen zu testen.

Externe Variablen des zu testenden Programms oder Funktionsbausteins (= POE) werden abhängig von ihrer Verwendung in einem Testfall spezifiziert:

  • Eine Spalte für einen Eingang ist vorhanden, falls die externe Variable nur lesend in der POE verwendet wird.
  • Eine Spalte für einen Ausgang ist vorhanden, falls auf die externe Variable in der POE geschrieben wird. Dies ist auch der Fall, wenn die externe Variable auch lesend verwendet wird.

Verhalten bei Struktur- und Arrayelementen

Für einen Eingang und Ausgang, der auf einem →strukturierter Datentyp oder →ARRAY-Datentyp basiert, ist nur eine Spalte vorhanden. Sie müssen den Spaltennamen erweitern, falls Sie ein Element davon ansprechen wollen. Lesen Sie unter "Zugriff auf strukturierten Datentyp und Strukturelemente" und "Zugriff auf ARRAY-Datentyp und ARRAY-Elemente" über die dafür benötigte Syntax nach.
Das bedeutet: Sie müssen selbst eine zusätzliche Spalte pro Struktur- oder Array-Element einfügen, das Sie im Testfall spezifizieren wollen. Für alle anderen Elemente geben Sie die Vorgaben im Arbeitsblatt Defaults an.
Beachten Sie, dass das Testframework nicht prüft, ob der Testfall jedes Element von solchen Eingangsvariablen enthält.

(info) Falls Sie Excel-Formeln verwenden, um erwartete Ergebnisse für REAL- oder LREAL-Werte zu berechnen (z.B. die Formel zum Berechnen eines Sinus-Werts), runden Sie diese Ergebnisse auf die signifikanten Stellen in der Excel-Datei (verwenden Sie z.B. die Formel zum Runden des Werts). Grund: logi.CAD 3  berechnet die REAL- und LREAL-Werte mit den entsprechend signifikanten Stellen (Details: siehe Informationen zum REAL- und LREAL-Datentyp).