Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

BLOG

Bereitstellen statischer Analysen und Komponententests in containerisierten Umgebungen, Teil 2

Bereitstellen statischer Analysen und Komponententests in containerisierten Umgebungen, Teil 2 Lesezeit: 5 Minuten

So erstellen Sie ein Container-Image mit dem Parasoft C / C ++ - Test

Teil 1 In diesem Beitrag wurden die Vorteile der Verwendung von Containern zum Bereitstellen eingebetteter Entwicklungs-Toolchains erläutert. Es wurde gezeigt, wie Parasoft C / C ++ test Professional für die Arbeit mit der in einem Container bereitgestellten Kompilierungs-Toolchain und Testausführungsumgebung konfiguriert wird.

Schauen wir uns nun an, wie Sie mit Parasoft C / C ++ Test Standard ein Container-Image erstellen. Ich werde ein einfaches Beispiel mit einer statischen Analyse im Container demonstrieren.

Stellen Sie den Parasoft C / C ++ - Teststandard in einem Docker-Container bereit

Als befehlszeilenbasiertes Tool eignet sich der Parasoft C / C ++ - Teststandard für In-Container-Bereitstellungen. Es kann mit dem Compiler und dem Build-System in ein Container-Image gepackt und für CI / CD verwendet und auf den Desktops der Entwickler für die lokalen Befehlszeilenscans bereitgestellt werden. Das folgende Bild zeigt die allgemeine Übersicht über dieses Setup:

Das Diagramm zeigt Jenkins, der einen containerisierten C / C ++ - Test verwendet, um eine statische Analyse durchzuführen. In diesem speziellen Setup werden der Parasoft C / C ++ - Test, die Kompilierungs-Toolchain und die Build-Tools in dem Container bereitgestellt, der in der oberen rechten Ecke des Diagramms angezeigt wird.

Der Container darunter unten rechts bietet die Ausführungsumgebung, die möglicherweise zur Ausführung von Laufzeitprüfungen erforderlich ist, z. B. Komponententests oder automatisierte Tests auf Systemebene.

Wenn wir nur statische Analysen implementieren möchten, wird unser Setup höchstwahrscheinlich nur einen Containertyp mit der Kompilierungs-Toolchain und dem Parasoft C / C ++ - Test enthalten.

Erstellen Sie ein Container-Image mit dem Parasoft C / C ++ - Test

Wenn Sie dies noch nicht getan haben, bitte Installieren Sie die neueste Version des Parasoft C / C ++ - Tests 2020.1 für Linux.

Um das Erstellen eines Container-Images mit dem C / C ++ - Test zu vereinfachen, wird die neueste Version mit einem Beispiel für die Docker-Datei geliefert. Sie finden diese Docker-Datei an folgendem Ort:

/ integration / docker / Dockerfile

Diese einfache Docker-Datei konzentriert sich nur auf die erforderlichen C / C ++ - Testschritte zum Erstellen des Images. In den meisten Fällen der realen Welt müssen Sie diese Datei mit Ihrer Docker-Datei zusammenführen.

Bevor wir den Inhalt im Beispiel Dockerfile analysieren, wollen wir sehen, wie es funktioniert. In meinem Beispiel wird die folgende einfache Dateistruktur angenommen:

style = ”Schriftgröße: 13px;”>$ HOME / sandbox / parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz

1. Entpacken Sie die C / C ++ - Testdistribution.

  • cd $ HOME / Sandbox
  • tar xzf parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz

2. Kopieren Sie die Beispiel-Docker-Datei aus der Distribution

  • cp cpptest / integration / docker

3. Bereiten Sie eine Eigenschaftendatei für den C / C ++ - Test mit den Informationen zur Lizenz vor. Wir verwenden die Standarddatei cpptestcli.properties als Basis und kopieren sie in unser Arbeitsverzeichnis:

  • cp cpptest / cpptestcli.properties

Bearbeiten Sie es, um die Informationen zu Ihrem Lizenzserverstandort einzufügen. Verwenden Sie Ihren bevorzugten Editor, um die Lizenzinformationen zu konfigurieren. Speichern Sie die Datei, wenn Sie fertig sind.

4. Bearbeiten Sie die Docker-Datei und kommentieren Sie die Zeilennummer 13 (die, in die die Datei cpptestcli.properties aus dem lokalen Verzeichnis an den Speicherort in den Containern kopiert wird). Die Zeile in der Docker-Datei sollte folgendermaßen aussehen:

  • KOPIEREN Sie cpptestcli.properties / opt / parasoft / cpptest

5. Jetzt können wir das Docker-Image erstellen. Führen Sie den Befehl aus, um das erste Image mit dem C / C ++ - Test zu erstellen. Der Bildname lautet "cpptest_ci_image".

  • Docker-Build -t cpptest_ci_image

Docker benötigt einige Zeit, um den Cache zu analysieren und das erforderliche Basis-Image herunterzuladen. Sobald dies erledigt ist, wird die C / C ++ - Testdistribution kopiert und in das Image installiert. Nach ein oder zwei Minuten sollte das Bild fertig sein. Bestätigen Sie dies, indem Sie den Befehl ausführen, um alle Bilder aufzulisten:

  • Docker-Bildliste

In der Ausgabe sollte oben "cpptest_ci_image" angezeigt werden. Großartig, also haben wir ein Bild erstellt und bereit. Jetzt ist es Zeit, es zu testen!

Testen Sie das Container-Image

Verwenden Sie für einen einfachen Test eine der in der Docker-Datei bereitgestellten Hilfs- / Beispielbefehlszeilen.

Verwenden Sie Ihren bevorzugten Editor, um die Docker-Datei zu öffnen, und scrollen Sie zum Ende der Dateien. Sie sollten einige Beispielbefehlszeilen wie diese sehen:

Verwenden Sie die Befehlszeile aus Zeile 26, um eine statische Analyse innerhalb des Containers für eines der mit der Distribution gelieferten C / C ++ - Testbeispiele auszuführen.

Da wir beschlossen haben, die Datei cpptestcli.properties mit den Lizenzinformationen in den Container einzubauen, können wir die Befehlszeile vereinfachen und die Option -settings entfernen. Die Befehlszeile für den Test sollte folgendermaßen aussehen:

  • Docker-Lauf –rm -v $ PWD: $ PWD -w / opt / parasoft / cpptest / examples / ATM cpptestcli -compiler gcc_9-64 -modul. -trace alles sauber machen

Voila! Die statische Analyse wurde im Container durchgeführt. Die Ergebnisse wurden auf der Konsole gemeldet.

Wir könnten das Tool weiter konfigurieren, um den HTML-Bericht im lokalen Dateisystem zu erstellen, aber dies ist eine andere Geschichte. Unser primäres Ziel war es, den Container mit dem darin enthaltenen C / C ++ - Test zu erstellen und ihn für die Ausführung einer statischen Analyse zu konfigurieren. Wir haben das Ziel erreicht.

Richten Sie einen CI-Server mit statischer Analyse ein

Wenn Sie einen CI-Server mit einrichten müssen statische Analyse Als Teil des Prozesses ist Ihre Aufgabe viel einfacher. Greifen Sie einfach auf den Container zu. Gleiches gilt, wenn Entwickler in Ihrem Team statische Analysen durchführen möchten.

Sie müssen den Parasoft C / C ++ - Test auf den aktualisieren neueste Erscheinung? Laden Sie einfach die Distribution herunter, erstellen Sie Ihr Container-Image neu und fertig! Das Team und die automatisierte Infrastruktur werden diesen Vorgang nicht einmal bemerken. Bei Bedarf glatt, einfach und reversibel.

Informationen zum Dockerfile-Inhalt

Bevor wir fertig sind, schauen wir uns den Inhalt der Docker-Datei an, die mit dem Parasoft C / C ++ - Test geliefert wurde, der gerade zum Erstellen unseres Images verwendet wurde. Das Bild unten zeigt den Inhalt von / integration / docker / Dockerfile.

Hier sind die Details:

  • Linie 2 Gibt den Docker-Hub des GCC-Images an, auf dem das Container-Image basiert.
  • Linie 3 Richtet das Arbeitsverzeichnis für nachfolgende Befehle ein, die in diesem Skript ausgeführt werden.
  • Linie 7Wir kopieren die C / C ++ - Testverteilung (Archiv) in das Container-Image.
  • Linie 10 extrahiert die Verteilung in den Speicherort im Container: / opt / parasoft (beachten Sie den Befehl WORKDIR in Zeile 4).
  • Linie 13 Kopiert die angepasste Datei cpptestcli.properties aus dem lokalen Verzeichnis in die In-Container-Installation von C / C ++. Dieser Schritt ist optional und standardmäßig auskommentiert. In den meisten Fällen möchten Sie einige Eigenschaften in die Installation des C / C ++ - Tests einbetten. Das typischste Szenario ist die Lizenzkonfiguration, die den Speicherort des Lizenzservers, Anmeldeinformationen usw. enthält.
  • Linie 16 Entfernt das Distributionsarchiv. Dies ist nur eine Bereinigung.
  • Linie 18 setzt das Arbeitsverzeichnis auf / home zurück (optional)
  • Linie 19 Gibt die ausführbare Datei an, die ausgeführt werden soll, wenn der Container gestartet wird.

Dies ist alles, was zum Erstellen eines einfachen Containers mit Parasoft C / C ++ - Test erforderlich ist, der zur Ausführung einer statischen Analyse bereit ist.

Wie bereits erwähnt, ist dies eine einfache Docker-Datei. Es wurde der Distribution hinzugefügt, um Ihnen ein Beispiel dafür zu geben, was Sie möglicherweise benötigen, um ein Container-Image für Ihre Umgebung zu erstellen. Sie müssen es an Ihre Bedürfnisse anpassen oder mit vorhandenen Docker-Dateien zusammenführen.

Geschrieben von

Miroslaw Zielinski

Zu den Spezialitäten von Miroslaw, dem Produktmanager für die eingebetteten Testlösungen von Parasoft, gehören C / C ++, RTOS, statische Code-Analyse, Komponententests, Verwaltung der Softwarequalität für sicherheitskritische Anwendungen und Einhaltung der Sicherheitsstandards durch die Software.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.