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.

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:

  1. Dialog Optionen ‣ Einstellungen ‣ Workspace-Einstellungen öffnen.

  2. In den Eingabefeldern Titel und Version hinterlegen.

  3. Option Ist eine Bibliothek aktivieren.

  4. Eineindeutige Bezeichnung für die Bibliothek im Feld Namespace hinterlegen.

../_images/configureWorkspaceSettings.png

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 Workspace-Einstellungen ‣ Bibliotheken werden die Bibliotheksworkspaces verwaltet. Mithilfe der Schaltflächen img_add, img_remove und img_edit lassen sich Bibliotheksworkspaces hinzufügen, entfernen oder bearbeiten.

../_images/configureLibraries.png

Inhalte

Die folgenden Elemente lassen sich zur zentralen Wartung und Wiederverwendung in Bibliotheken auslagern. 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

Package

package_icon

lib_package_icon

Analysepackage

analysis_package_icon

lib_analysis_package_icon

Projekt

project_icon

lib_project_icon

Testkonfigurationen

testConfiguration_icon

lib_testConfiguration_icon

Testbenchkonfigurationen

testBenchConfiguration_icon

lib_testBenchConfiguration_icon

Konfigurationswechsel

configChange_icon

lib_configChange_icon

Projektgenerator

prjgen_icon

lib_prjgen_icon

Packagegenerator

pkggen_icon

lib_pkggen_icon

Parametersatzgenerator

pargen_icon

lib_pargen_icon

Globale Mappingdatei

mappingfile_icon

lib_mappingfile_icon

Konstantendefinition

globalconstantsfile_icon

lib_globalconstantsfile_icon

Traceschrittvorlagen

n.a.

n.a.

Benutzer-Python-Bibliotheken

n.a.

n.a.

Benutzerdefinierte Utilities

n.a.

n.a.

Benutzerdefinierte Tools

n.a.

n.a.

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.

../_images/libPackageCall.png

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 Hauptworksapce - 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.

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'

../_images/libTraceStepTemplate.png

Generatoren

Projektgeneratoren eines Bibliotheksworkspace lassen sich in Projekte des Hauptworkspace einbinden. Über das Kontextmenü der Funktion prjgen_icon 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

../_images/libProjektGenerator.png

Analog zu den Projektgeneratoren lassen sich auch Packagegeneratoren und Parametersatzgeneratoren eines Bibliotheksworkspace einbinden.

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.

../_images/libUserPyModule.png

Info

Um Namenskonflikte zu vermeiden steht das Modul user in Bibliotheksworkspaces nicht zur Verfügung.

Vorsicht

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.