Bibliotheksworkspaces¶
Mit Bibliotheksworkspaces können Inhalte eines Workspace in anderen Workspaces wiederverwendet werden. Änderungen in der Bibliothek wirken sich automatisch auf alle referenzierenden Workspaces aus. Bibliotheksartefakte können zudem über EasyInsert gefunden und eingefügt werden.
Die Einbindung einer solchen Bibliothek in einen anderen Workspace erfolgt per Pfadangabe in den ecu.test Einstellungen.
Mithilfe des in ecu.test mitgelieferten Beispiel-Workspace aus Tutorial Bibliotheksworkspace lassen sich die nachfolgenden Schritte zur Einrichtung und Verwendung von Bibliotheksworkspaces detailliert nachvollziehen.
Erstellung¶
Um einen Workspace als Bibliotheksworkspace zu deklarieren, sind folgende Einstellungen vorzunehmen:
Dialog öffnen.
In den Eingabefeldern Titel und Version hinterlegen.
Option Ist eine Bibliothek aktivieren.
Eineindeutige Bezeichnung für die Bibliothek im Feld Namespace hinterlegen.
Warnung
Änderungen des Namespace führen zu fehlerhaften Referenzen. Der Namespace eines Bibliotheksworkspace muss eineindeutig sein! Nur dann kann sichergestellt werden, dass bei der Verwendung mehrerer Bibliotheksworkspaces eine eindeutige Referenzierung erfolgt.
Info
Ein Bibliotheksworkspace kann Abhängigkeiten zu weiteren Bibliotheksworkspaces besitzen. Diese transitiven Abhängigkeiten müssen allerdings zwingend als Bibliotheken im Hauptworkspace hinzugefügt werden. Andernfalls werden durch deren Fehlen verursachte Fehler erst zur Testlaufzeit aufgedeckt. Zusätzlich ist auch die Reihenfolge wichtig. Transitive Abhängigkeiten müssen vor den anderen Abhängigkeiten eingefügt werden.
Die Änderungen, die sich durch das Deklarieren eines Workspace als Bibliotheksworkspace in ecu.test ergeben, werden unter Inhalte von Bibliotheksworkspaces näher beschrieben.
Verwendung¶
Ein Workspace kann beliebig viele Bibliotheksworkspaces referenzieren. Die Einbindung erfolgt über die Angabe des Pfades zum jeweiligen Bibliotheksworkspace in den ecu.test Einstellungen.
Unter der Kategorie Bibliotheken in den ecu.test Einstellungen unter
werden die Bibliotheksworkspaces verwaltet. Mithilfe der Schaltflächen
,
und
lassen sich Bibliotheksworkspaces hinzufügen, entfernen oder bearbeiten.
Inhalte¶
Die folgenden Elemente lassen sich zur zentralen Wartung und Wiederverwendung in Bibliotheken auslagern. Dazu gehören auch Templates für Projekte, Packages und Analysepackages. Um schnell zwischen Artefakten aus Bibliotheken und solchen aus dem Hauptworkspace zu unterscheiden, werden für Artefakte aus Bibliotheken petrolfarbene Icons verwendet.
Element |
Standard-Icon |
Bibliotheks-Icon |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kein icon |
kein Icon |
|
kein Icon |
kein Icon |
|
kein Icon |
kein Icon |
|
kein Icon |
kein Icon |
|
kein Icon |
kein Icon |
Werden Elemente aus einem Bibliotheksworkspace in ein Package oder Projekt des Hauptworkspace per Drag & Drop aus dem Workspace-Explorer oder per Kontextmenü hinzugefügt, wird immer eine Bibliotheksreferenz erstellt.
Package¶
Packages aus einem Bibliotheksworkspace werden einem Package per Drag & Drop aus dem Workspace-Explorer hinzugefügt. Dabei wird eine Bibliotheksreferenz erzeugt. Weitere Informationen zu den verschiedenen Arten von Packagereferenzen finden Sie im Abschnitt Packagereferenzen.
Ein Package in einem Bibliotheksworkspace kann auch ein anderes Package aus dem selben Bibliotheksworkspace aufrufen. Das Package wird in diesem Fall immer mit einer Bibliotheksreferenz eingebunden.
Info
Auch das Einbinden von Hauptworkspace-Packages in Bibliothekspackages ist möglich. Dabei wird, im Gegensatz zu den anderen Fällen, immer eine absolute Packagereferenz erzeugt. Diese rückwärtige Abhängigkeit hat aufgrund der absoluten Pfadreferenzen einen negativen Einfluss auf die Wiederverwendbarkeit der Bibliothek!
Projekt¶
Ein Projekt in einem Bibliotheksworkspace kann sowohl Packages und Projekte aus demselben Bibliotheksworkspace sowie aus anderen, transienten Bibliotheksworkspaces aufrufen.
Konfigurationen¶
Testkonfigurationen (TCF) sowie Testbenchkonfigurationen (TBC) können in Bibliotheksworkspaces ausgelagert werden, um eine zentrale Pflege und Wiederverwendbarkeit zu gewährleisten. Sie können auch in unterschiedlichen Bibliotheken verwaltet werden.
Erstellung¶
Konfigurationen können direkt in der jeweiligen Bibliothek oder alternativ aus einem lokalen Workspace heraus in der referenzierten Bibliothek erstellt und bearbeitet werden.
Enthält eine Konfiguration Referenzen auf Artefakte, gelten folgende Einschränkungen:
Relativ angegebene Dateireferenzen wie z.B. zu Busdatenbanken, A2L/HEX-Files etc. beziehen sich immer auf den Bibliotheksworkspace in welchem die Konfiguration abgelegt ist. Relativ referenzierte Dateien müssen demnach zwingend im selben Bibliotheksworkspace abgelegt sein.
Alternativ kann immer auch ein absoluter Pfad angegeben werden.
Wichtig
Ein Basispfad <workspace> in der TBC bewirkt, dass der Bibliotheksworkspace in dem die TBC abliegt als Basispfad verwendet wird. Der Basispfad wird für die Konfiguration einiger Tools herangezogen und ermöglicht es bei der Toolkonfiguration relative Pfade zu verwenden.
Verwendung¶
Konfigurationen aus Bibliotheken können - analog zu jenen aus dem Hauptworkspace - per Drag & Drop in
den Konfigurationsbereich oder das Projekt gezogen werden.
Bei letzterem wird ein Konfigurationswechsel
im Projekt eingefügt. Sobald ein Konfigurationswechsel mindestens eine Referenz auf eine
Bibliothek enthält, wird er durch ein petrolfarbenes Icon
gekennzeichnet.
Migrationshilfe für das Verschieben in einen Bibliotheksworkspace¶
Test- und Testbenchkonfigurationen müssen unter gewissen Umständen nach dem Verschieben aus dem Hauptworkspace in einen Bibliotheksworkspace noch angepasst werden, damit enthalte Referenzen zu Artefakten wie z.B. Konstantendefinitionsdateien und globalen Mappingdateien nicht ungültig werden.
Für die Migration von Konfigurationen wird die folgende Vorgehensweise empfohlen:
Konfigurationen verschieben
Konfigurationsdateien (TCF + TBC) in den Bibliotheksworkspace verschieben.
Relativ referenzierte Artefakte migrieren
Alle Artefakte, die in den verschobenen Konfigurationen relativ angegeben wurden (z.B. Modelldateien, Bus-Datenbanken, .a2l, .hex), müssen ebenfalls in den Bibliotheksworkspace umgezogen werden. Wenn dabei die Ordnerstruktur nicht exakt mit übernommen wird, ist eine Anpassung der relativen Pfade in der Konfiguration notwendig.
Absolut referenzierte Artefakte prüfen
Absolute Pfade erfordern in der Regel keine Anpassungen. Jedoch sollte aus Konsistenzgründen geprüft werden, ob diese Artefakte ebenfalls in den Bibliotheksworkspace verschoben werden können.
Referenzen in Bibliotheksreferenzen umwandeln
ecu.test im Bibliotheksworkspace starten.
Entfernen der Einträge für globale Mappingdateien (.xam) im Tab Allgemein der Testkonfiguration und Auswählen der in den Bibliotheksworkspace migrierten Artefakte.
Entfernen der Einträge für Konstantendefinitionsdateien (.gcd) und -skripte (.py) im Tab Globale Konstanten der Testkonfiguration und Auswählen der in den Bibliotheksworkspace migrierten Artefakte.
Info
ecu.test erzeugt automatisch eine Bibliotheksreferenz der Form
<libraries.libNamespace.parameters>\datei.Verifikation im Bibliotheksworkspace
Die migrierten Konfigurationen auswählen und starten. Dabei dürfen keine Meldungen zu fehlenden Dateien auftreten und die Konfigurationen werden erfolgreich gestartet.
Verifikation im Hauptworkspace
ecu.test im Hauptworkspace starten.
Die migrierten Konfigurationen aus dem Bibliotheksworkspace auswählen und starten. Dabei dürfen keine Meldungen zu fehlenden Dateien auftreten und die Konfigurationen werden erfolgreich gestartet.
Traceschrittvorlage¶
Traceschrittvorlagen aus einem Bibliotheksworkspace werden einem Package per Drag & Drop aus dem Tab Traceschrittvorlagen hinzugefügt. Dabei wird immer eine Bibliotheksreferenz erstellt.
Der Aufruf ist mit einer Pfad-Expression definiert. Per Doppelklick auf den hinzugefügten Traceschritt wird die Syntax für den Traceschrittvorlagen-Pfad angezeigt. Dieser setzt sich aus folgenden Elementen zusammen:
libraries.<Namespace der Bibliothek>.traceStepTemplates + <relativer Traceschrittvorlagen-Pfad im Bibliotheksworkspace>
Beispiel: libraries.exampleLibWorkspace.traceStepTemplate + 'MyLibTemplate.trcp'
Generatoren¶
Projektgeneratoren eines Bibliotheksworkspace
lassen sich in Projekte des Hauptworkspace einbinden. Über das Kontextmenü der Funktion
Projektgenerator kann der Projektgenerator des Bibliotheksworkspace angelegt und in
das gewählte Workspaceprojekt integriert werden. Jeder Aufruf eines Projektgenerators aus einem
Bibliotheksworkspace wird über eine eindeutige ID referenziert.
Beim Aufruf eines Projektgenerators aus dem Bibliotheksworkspace wird zur besseren Unterscheidung der Namespace des Bibliotheksworkspace als Präfix dem Namen des Projektgenerators vorangestellt.
Beispiel: exampleLibWorkspace: CallOwnLibPackages
Analog zu den Projektgeneratoren lassen sich auch Packagegeneratoren und Parametersatzgeneratoren eines Bibliotheksworkspace einbinden.
Templates¶
Die Templates können in einem Bibliotheksworkspace verwaltet werden. Sie stehen dann bei der Erstellung eines neuen Artefakts im Hauptworkspace zur Auswahl zur Verfügung.
Reportgeneratoren¶
Auch Reportgeneratoren aus einem Bibliotheksworkspace stehen im Report-Tab der Testkonfiguration zur Verfügung und sind dort auswählbar. Ebenso werden sie im Report Viewer angezeigt und können für die Reporterzeugung ausgewählt werden.
Eine Übersicht der Befehle, die in eigenen Reportgeneratoren verwendet werden können, findet sich in der Report API.
Info
Wenn mehrere Reportgeneratoren mit identischem Namen gefunden werden, gilt folgende Priorität:
Workspace
Bibliotheksworkspaces (letzter Eintrag unter Bibliotheken hat höchste Priorität)
Templates-Verzeichnis im ecu.test-Installationsverzeichnis
Benutzer-Python-Bibliothek¶
Wurden mit einem Bibliotheksworkspace Benutzer-Python-Bibliotheken ausgelagert, lassen sich diese in den Packages des Hauptworkspace einbinden.
Dafür wird im Testschritt Berechnung im Feld Ausdruck der Pfad zur gewünschten Benutzer-Python-Funktion eingegeben.
Beispiel: libraries.exampleLibWorkspace.user.return42Module.return42()
Das Modul libraries.<NAMESPACE>.user muss in dem Aufruf immer als Präfix verwendet werden.
Info
Um Namenskonflikte zu vermeiden steht das Modul user in Bibliotheksworkspaces nicht zur Verfügung.
Wichtig
Statt des normalen Aufrufs:
from user.MyModule import UserClass
muss der folgende Aufruf verwendet werden:
from libraries.exampleLibWorkspace.user.MyModule import UserClass
Hierbei ist exampleLibWorkspace der Namespace des Bibliotheksworkspace, aus dem importiert werden soll.
Es ist möglich, die bisherigen benutzerdefinierten Anpassungen von ecu.test, die in den Benutzer-Python-Bibliotheken abgelegt wurden, in eine Bibliothek auszulagern. Beispiele dafür sind eigene Packageüberprüfungen, benutzerdefinierte Testmanagement-Hooks oder auch benutzerdefinierte Bild-Filter.


















