Erstellen eines Testrahmens
Ein Testrahmen ist ein Modell, das die zu testende Komponente isoliert und über Eingaben, Ausgaben und Verifikationsblöcke für Testszenarien verfügt. Sie können einen Testrahmen für eine Modellkomponente oder für ein vollständiges Modell erstellen. Ein Testrahmen bietet Ihnen eine separate Testumgebung für ein Modell oder eine Modellkomponente. Beispiel:
Sie können ein Subsystem einem Unit-Test unterziehen, indem Sie es vom Rest des Modells isolieren.
Sie können ein geschlossenes Testszenario für einen Controller erstellen, indem Sie dem Testrahmen ein Anlagenmodell hinzufügen.
Sie können Ihr Hauptmodell von unnötigen Verifikationsblöcken freihalten, indem Sie die Blöcke „Model Verification“ und Test Assessment im Testrahmen platzieren.
Um einem Testfall einen Testrahmen zuzuweisen, wählen Sie im Test Manager im Abschnitt System Under Test die Option Test Harness.
Sie können den Rahmen mit Ihrem Modell speichern oder in einer externen Datei ablegen. Wenn Ihr Modell einer Änderungsverwaltung unterliegt, sollten Sie den Testrahmen in einer externen Datei speichern. Der Rahmen funktioniert unabhängig davon, ob er sich innerhalb oder außerhalb des Modells befindet. Weitere Informationen finden Sie unter Manage Test Harnesses und Synchronize Changes Between Test Harness and Model.
Erstellen eines Rahmens
In diesem Beispiel erstellen Sie einen Rahmen direkt aus einem Modell. Der Testrahmen testet das Subsystem shift_logic des Modells sltestCarRootInport.
Öffnen Sie das Modell
sltestCarRootInport.openExample("sltestCarRootInport.slx")Rechtsklicken Sie auf das Subsystem
shift_logic. Wählen Sie im Kontextmenü Test Harness > Create for 'shift_logic'.Geben Sie im Dialogfeld „Create Test Harness“ die Eingaben, Ausgaben und andere Optionen an:
Verwenden Sie Constant-Blöcke, um Eingabesignale bereitzustellen. Setzen Sie unter Sources and Sinks die Quelle auf
Constantund den Senke aufScope.Belassen Sie die anderen Optionen in ihrer Standardeinstellung. Standardmäßig:
Der Rahmen wird mit der Modelldatei gespeichert.
Der Rahmen synchronisiert sich beim Öffnen mit dem Modell, d. h., Änderungen am Modell werden im Rahmen aktualisiert.
Klicken Sie auf OK, um den Testrahmen zu erstellen.

Im Zentrum des Rahmens befindet sich eine Kopie des Subsystems shift_logic. Das Subsystem shift_logic ist die zu testende Komponente. Die beiden vertikalen Subsysteme umfassen die Signalspezifikation und das Routing.
Die in der zu testenden Komponente verwendeten Signalnamen werden vom Modell an den Testrahmen weitergeleitet. Bei Subsystem-Rahmen sind einige weitergeleitete Signalnamen möglicherweise erst nach der Kompilierung des Rahmens sichtbar. Bei Blockdiagramm-Rahmen werden Signalnamen auch dann weitergegeben, wenn Sie im Dialogfeld „Signal Properties“ die Option Show propagated signals nicht auswählen.
Sie können auch einen Rahmen oder mehrere Rahmen gleichzeitig erstellen, indem Sie die Funktion sltest.harness.create, die Funktion sltest.testmanager.createTestForComponent oder den Assistenten „Create Test for Model Component“ verwenden, der im Test Manager verfügbar ist. Informationen zum Assistenten finden Sie unter Generate Tests and Test Harnesses for a Model or Components.
Informationen zur Architektur des Testrahmens finden Sie unter Test Harness Construction for Specific Model Elements. Informationen zum Anpassen der Standard-Rahmen-Einstellungen beim Erstellen eines neuen Rahmens finden Sie unter Customize Test Harness Creation Default Property Values.
Simulieren des Testrahmens
Weisen Sie den Constant-Blöcken Werte zu, um die Komponente zu testen:
Ändern Sie den Wert des Geschwindigkeitsblocks auf
50.Ändern Sie den Wert des Drosselblocks auf
30.Klicken Sie auf der Registerkarte „Simulation“ auf „Run“, um den Rahmen zu simulieren.
Öffnen Sie den Bereich und betrachten Sie das Ergebnis. Das Schaltsteuergerät wählt den dritten Gang.

Test mit dem Test Manager
Im vorherigen Fall haben Sie Testdaten mit Constant-Blöcken bereitgestellt. Sie können auch Testdaten aus externen Dateien verwenden.
Erstellen Sie einen Testrahmen, der Inport-Quellen verwendet.
Erstellen Sie einen Testfall, der den Testrahmen als System Under Test verwendet.
Ordnen Sie dem Testfall externe Eingaben zu.
Mit einem Testfall im Test Manager können Sie verschiedene Testvektoren iterieren, Testfälle hinzufügen, Batches von Testfällen ausführen und Ihre Ergebnisse organisieren. Dieses Beispiel zeigt Ihnen, wie Sie externe Daten mit einem Testrahmen verwenden und aus dem Test Manager heraus simulieren können.
Um den Test Manager zu öffnen, klicken Sie auf der Registerkarte Apps unter „Model Verification, Validation, and Test“ auf Simulink Test. Klicken Sie anschließend auf der Registerkarte Tests auf Simulink Test Manager.
Wählen Sie New > Test File aus der Symbolleiste des Test Managers.
Benennen Sie die Datei
ShiftLogicTest.Wählen Sie New Test Case 1 (Benutzerdefinierte Funktion) aus. Klicken Sie im Abschnitt System Under Test auf Use current model
.Wählen Sie für Test Harness aus der Dropdown-Liste
ShiftLogic_InportHarnessaus. Der Testrahmen ist bereits im Modell vorhanden.Klicken Sie im Abschnitt Inputs auf Create. Benennen Sie die Eingabedatei mit
shift_logic_inputund wählen Sie das Dateiformat MAT.Geben Sie im Signal Editor die Werte für die Eingaben ein:
Wählen Sie das Signal speed aus und geben Sie
50für die Zeiten0und30ein. Drücken Sie die Eingabetaste, um das Diagramm zu aktualisieren.Wählen Sie das Signal throttle aus und geben Sie
30für die Zeiten0und30ein. Drücken Sie die Eingabetaste, um das Diagramm zu aktualisieren.
Klicken Sie in der Symbolleiste des Signal Editors auf Save.
Wählen Sie die zu erfassenden Ausgabedaten aus.
Klicken Sie im Abschnitt Simulation Outputs des Test Manager auf Add.
Wählen Sie im Blockdiagramm des Testrahmens die Signallinie
gearaus. Wählen Sie das Signal im Dialogfeld Connect aus.Klicken Sie auf Done, um das Signal zu den Testfallausgaben hinzuzufügen.
Klicken Sie in der Symbolleiste des Test Managers auf Run.
Erweitern Sie die Ergebnisse und markieren Sie die Getriebeausgabe. Das Diagramm zeigt, dass das Steuergerät den dritten Gang wählt.
